- 浏览: 130526 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- java基础 (9)
- java高级 (19)
- struts2.x (2)
- spring (1)
- hibernate (1)
- jpa (1)
- ibatis (2)
- javascript (4)
- jsp (2)
- sql (9)
- oracle (12)
- extjs (0)
- uml (0)
- 关于面试 (4)
- 常用软件晋级 (5)
- 网络编程 (1)
- XML (1)
- servlet (5)
- jquery (6)
- Tomcat (3)
- Android (17)
- ssl (1)
- c 指针 (0)
- c/c++/oc (3)
- ios (7)
- 设计模式 (0)
- 终端命令 mac (2)
- sqlite3 (1)
- linux (7)
- hadoop (2)
- 特效 (3)
- 架构之路 (2)
- p2p (1)
- 常见问题 (0)
- html (1)
最新评论
-
zaocha321:
建议改一下文章中的错别字。
多线程(二) -
shamusoft:
在iPhone上是采用sqlite进行数据存储是我一种比较习惯 ...
sqlite3 相关操作 -
bear1122ccc:
这是给学习IOS的人打气呀。顶下。
初学ios -
shamusoft:
<Connector className="o ...
SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程) -
shamusoft:
去掉拖动ListView带有的黑色背景: and ...
关于加密
public class MySession { /** * 用反射实现的查找 */ public Object find(Class clazz,Object id){ try { //通过反射获取clazz的类名 QueryRunner query = new QueryRunner(); String className = clazz.getName(); String[] split = className.split("\\."); String tableName = split[split.length - 1]; String sql = "select * from " + tableName + " where id=?"; //Object c = query.query(sql, new BeanHandler(clazz), new Object[] { id }); System.out.println(sql); return null; } catch (Exception e) { throw new RuntimeException(e); } } /* * 实现删除 */ public void delete(Class clazz,Object id){ try { QueryRunner runner = new QueryRunner(); String className = clazz.getName(); String[] split = className.split("\\."); String tableName = split[split.length - 1]; String sql = "delete from " + tableName + "where id=?"; //runner.update(sql, new Object[] { id }); } catch (Exception e) { } } /** * 实现增加 */ public void add(Class clazz){ //首先获得表名 QueryRunner runner = new QueryRunner(); String className = clazz.getName(); String[] split = className.split("\\."); String tableName = split[split.length - 1]; //通过反射获得字段 Field[] fields = clazz.getDeclaredFields(); StringBuilder sb = new StringBuilder("insert into "); sb.append(tableName+" ("); for(Field f:fields){ sb.append(f.getName()+","); } sb.deleteCharAt(sb.length()-1); sb.append(")"); sb.append(" values("); for(int i=0;i<fields.length;i++){ sb.append("?,"); } sb.deleteCharAt(sb.length()-1); sb.append(")"); String sql = sb.toString(); System.out.println("--------add---------\n"+sql); } /* * 修改同类增加 */
评论
2 楼
shamusoft
2011-05-27
try {
Class clazz = bean.getClass();
String className = clazz.getName();
String[] split = className.split("\\.");
String tableName = split[split.length - 1];
Field[] fields = clazz.getDeclaredFields();
QueryRunner runner = new QueryRunner(JbcUtils.getDataResource());
StringBuilder sql = new StringBuilder("insert into ");
sql.append(tableName + " (");
for (Field f : fields) {
sql.append(f + ",");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(" ) values (");
for (Field f : fields) {
sql.append("?,");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(" ) where id=?");
Object params[]= new Object[fields.length];
for(int i=0;i<fields.length;i++){
String value = BeanUtils.getProperty(bean,fields[i].getName());
params[i]=value;
}
int count = runner.update(sql.toString(),params);
if(count>0)return true;
return false;
} catch (Exception e) {
throw new DaoException();
}
Class clazz = bean.getClass();
String className = clazz.getName();
String[] split = className.split("\\.");
String tableName = split[split.length - 1];
Field[] fields = clazz.getDeclaredFields();
QueryRunner runner = new QueryRunner(JbcUtils.getDataResource());
StringBuilder sql = new StringBuilder("insert into ");
sql.append(tableName + " (");
for (Field f : fields) {
sql.append(f + ",");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(" ) values (");
for (Field f : fields) {
sql.append("?,");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(" ) where id=?");
Object params[]= new Object[fields.length];
for(int i=0;i<fields.length;i++){
String value = BeanUtils.getProperty(bean,fields[i].getName());
params[i]=value;
}
int count = runner.update(sql.toString(),params);
if(count>0)return true;
return false;
} catch (Exception e) {
throw new DaoException();
}
1 楼
shamusoft
2011-05-27
Object[] params = new Object[fields.length];
for(int i=0; i<fields.length; i++) {
String value = BeanUtils.getProperty(bean, fields[i].getName());
System.out.println(value);
params[i] = value;
}
for(int i=0; i<fields.length; i++) {
String value = BeanUtils.getProperty(bean, fields[i].getName());
System.out.println(value);
params[i] = value;
}
发表评论
-
maven 学习参考文章
2015-02-10 09:06 534maven环境快速搭建 http://www.cn ... -
用struts 包控制权限的文章
2015-01-09 09:23 526http://www.cnblogs.com/Johness/ ... -
IE 兼容模式 quirks 网页变形
2014-11-27 23:14 608http://www.cnblogs.com/0000/ar ... -
oracle 日期操作
2014-10-16 16:53 606Oracle 获取当前日期及日期格式 获取系统日期: ... -
freemark hellword
2014-09-11 20:32 9271、所需的材料: 主料: myeclipse(我用的版 ... -
学习FreeMaker
2014-04-10 16:41 592原文地址 :http://tailshe ... -
JSONOBJ 转换对象
2013-12-22 13:13 962import java.lang.reflect.Field ... -
p2p 企业信贷 UML 跨行清算
2013-12-07 23:09 587p2p 银行业务 http://blog.csdn.net ... -
glassfish 集群
2013-12-05 14:35 728感谢猫咪文章,在此做 ... -
c语言的指针
2012-02-27 09:08 783C语言中的精华是什么,答曰指针,这也是C语言中唯一的难点。 C ... -
本地域名解析操作步骤:
2012-02-22 09:40 01.打开C:\WINDOWS\system32\drive ... -
SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
2012-02-14 08:57 1559SSL协议的工作流程: ... -
android httpclient https 单向连接tomcat
2012-02-08 17:01 1655双向篇还未实现,先记录单向验证方式。? 一 Android直接 ... -
关于加密
2011-12-27 14:01 940keytool -genkey -alias shamusof ... -
jdk1.5新特性 增强for循环
2011-06-03 06:52 817[code="java"] ... -
反射泛型注解
2011-05-26 07:47 1609一、反射 1. 一段java代码在程序运行期间会经历三个阶段 ... -
代理实现过滤器例子
2011-05-26 07:29 889package cn.itcast.proxy; imp ... -
动态代理 测试代码
2011-05-26 06:25 680import java.lang.reflect.Constr ... -
工厂模式
2011-05-10 10:39 605分析:工厂模式 工厂模式目的就是解耦。解耦目的是为了一个类的 ...
相关推荐
java的基于泛型+反射的通用DAO例子,原创,没事写着玩的,请多指教哈。。。
C#特性标签实现通用Dao层C#特性标签实现通用Dao层C#特性标签实现通用Dao层
java反射实现数据库增、删、改、查操作Dao
NULL 博文链接:https://brooke.iteye.com/blog/996621
基于泛型的通用Dao接口是指使用泛型来实现数据访问对象(DAO)的接口,主要是在使用 Hibernate 或 JPA 时使用。泛型可以使得DAO接口更灵活、更通用。 泛型Dao接口的优点: 1. 耦合性低:泛型Dao接口可以与不同的...
自己写的泛型通用DAO,可以很简化DAO层的代码,但是目前只能支持单表的增,删,查,改。可以充分的理解jdk5.0的泛型和反射机制。希望大家指正不足之处!
泛型dao接口 :GenericDao, ID extends Serializable> 泛型作为DAO的通用接口 CRUD方法 dao接口 : PersonDAO extends GenericDao, Integer> 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 ...
每次写sql语句的时候都非常恼火,这种体力活还真不是人干的,没一点技术含量,自己终于研究了半天的java反射机制,利用它写了这个通用的dao,终于省去了好多的功夫.
superDAO利用Java的反射机制实现的万能DAO工具类,包含对应的测试代码,利用万能DAO可以对数据库中任意表进行操作,只需一个DAO类即可完成。具体功能包括:单表查询多表查询模糊查询添加修改删除阅读本代码需要掌握...
2 用反射机制能干什么事 刚开始在使用jdbc时侯,在编写访问数据库时写到想吐,有八个表,每个表都有增删改查中操作,那时候还不知道有反射 机制这个概念,所以就对不同的表创建不同的dao类,这样不仅开发速率慢,而且...
泛型dao接口 :GenericDao, ID extends Serializable> 泛型作为DAO的通用接口 CRUD方法 dao接口 : PersonDAO extends GenericDao, Integer> 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 ...
基于Data Access Object(DAO)设计模式,利用抽象、接口、类反射技术设计和实现了可重用Java数据库操作组件。它封装了注册和载入JDBC驱动程序、建立数据库连接、运行Structured Query Language(SQL)语句及处理查询...
文件解压后当成文件夹导入到src里面就行了 database.properties文件用来设置数据库连接的参数 主要的操作类是BaseDAO 包含了基本数据库操作(增,删,改,查)方法有注释。...DAO包里面的其他几个类都没什么用。
通用翻页、使用 AOP 编程思想实现事务操作、面向接口编程、高可重用性DAO、反射、ORM 思想、使用 jQuery 实现 Ajax等。 学习本案例后,将初步具备 JavaEE 企业级开发技能,并为学习后面的框架和项目扫除障碍。
否则只能查看 11) Dao 操作优化 BaseDao.java 所有dao的通用方法,dao都必须继承此类 (反射泛型)实现步骤代码:1) 设计数据库:
除了常规的 JDBC 技术外,本Java视频教程更涵盖 <利用反射及 JDBC 元数据编写通用的查询方法>、<使用 DBUtils 工具类>、<DAO设计模式>、<编写通用的 DAO 接口实现类> 等企业级开发内容。 源码级讲授 DBUtils 工具...
除了常规的 JDBC 技术外,更涵盖 <利用反射及 JDBC 元数据编写通用的查询方法>、<使用 DBUtils 工具类>、<DAO设计模式>、<编写通用的 DAO 接口实现类> 等企业级开发内容。源码级讲授 DBUtils 工具类的实现思想,...
组件出版于 2012 年末横空出世,由于不会炒作,至今无人问津。 DAO层万能组件,将CRUD、登陆,修改密码等功能完美封装。只需服务层调用即可!
11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的...
11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的...