上一次介绍了一下DbUtils组件的基本用法,其中最值得关注的就是QueryRunner对象,这应该是整个DbUtils组件最重要的一个组件,因此下面将详细的介绍其功能。
DbUtils的方法并不多,除前面已经介绍的query对象外,还有两个比较重要的方法,分别是fillStatement与 batch方法,可以看出这两个方法都与Statement相关。
batch方法的参数形式为:
batch(String sql, Object[][] params)
上面的方法执行一个批处理操作,其中params表示参数替换的数组,下面给出其简单用法:
...................
@Test
public void testBatch() throws SQLException{
String sql = "insert user(name,password) values(?,?)";
QueryRunner query = new QueryRunner(ConnectionPool.getDataSource());
String[][] params = {{"fans","2008"},{"fansof","2009"}};
query.batch(sql, params);
}
...............
至于fillStatement系列的方法可能稍微麻烦一点,它有以下几种形式:
fillStatement(PreparedStatement stmt, Object[] params)
fillStatementWithBean(PreparedStatement stmt, Object bean, PropertyDescriptor[] properties)
fillStatementWithBean(PreparedStatement stmt, Object bean, String[] propertyNames)
以上几种方式中第一种与第三种比较有用,第二种是底层实现,一般不会直接使用。
第一种用法最简单,直接将参数填充即可:
...........
@Test
public void testInsertWithStatementBatch() throws SQLException{
String sql = "insert user(name,password) values(?,?)";
QueryRunner query = new QueryRunner(ConnectionPool.getDataSource());
PreparedStatement ps = ConnectionPool.getConnection().prepareStatement(sql);
String[] param = {"fanso","2008"};
String[] param2 = {"fansp","2008"};
query.fillStatement(ps, param);
ps.addBatch();
query.fillStatement(ps, param2);
ps.addBatch();
ps.executeBatch();
}
...........
如果客户端传过来的是Java对象的话,上面的方法就不太好了,于是可以用上面的第三种参数形式:
..........
@Test
public void testInsertWithBeanBatch() throws SQLException, IntrospectionException{
String sql = "insert user(name,password) values(?,?)";
QueryRunner query = new QueryRunner(ConnectionPool.getDataSource());
PreparedStatement ps = ConnectionPool.getConnection().prepareStatement(sql);
User user = new User();
user.setName("fansofjava");
user.setPassword("2012");
User user2 = new User();
user2.setName("fansofjava");
user2.setPassword("2013");
String[] propertyName = {"name","password"};
query.fillStatementWithBean(ps, user, propertyName);
ps.addBatch();
query.fillStatementWithBean(ps, user2, propertyName);
ps.addBatch();
ps.executeBatch();
}
........
关于QueryRunner的用法基本上讲完了,能掌握这些,我想基本就够了。
分享到:
相关推荐
dbutils dbutils dbutils dbutils
apache下面有很多值得学习的开源项目,尤其是commons系列,在此,特封装了其组织下的dbutils根据,方便了喜欢使用sql开发的java朋友,里面有各种实用的封装类和对数据库操作的接口,欢迎下载!
dbutils学习实例,基本的底层数据的应用实例,包括连接池c3p0和jdbc的三种包装形式
模仿DBUtils(自己模仿Commons DBUtils写的简易DBUtils),欢迎大家下载学习,这不是Apache旗下的DBUtils哦~
DBUtils 是一套允许线程化 Python 程序可以安全和有效的访问数据库的模块。DBUtils已经作为 Webware for Python 一部分用来结合 PyGreSQL 访问 PostgreSQL 数据库,当然他也可以用在其他Python应用程序中来访问 DB-...
dbutils api
dbutils
赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...
DBUtils操作数据库以及事物的管理
JDBC学习(九)dbUtils原理代码实例,包含三个demo:正常C3P0数据库池对数据库的增删改查操作;自己实现dbutils对数据库实现增删改查操作;使用apache的工具类dbutils对数据库增删改查操作。
commons-dbutils-1.7.jarcommons-dbutils-1.7.jarcommons-dbutils-1.7.jar
python dbutils 简单封装
赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...
commons-dbutils的再封装jar包,Blog文件的示例代码
这里分享的是commons-dbutils-1.3,解压打开导入commons-dbutils-1.3.jar即可
Dbutils_详解,适合初学者学习Dbutils。
dbutils 它不是一个DAO,也不是类似Hibernate的工具, 仅是对已有的JDBC技术进行了一个简单封装。
commons-dbutils-1.4.jar
DBUtils包括3个包: org apache commons dbutils org apache commons dbutils handlers org apache commons dbutils wrappers DBUtils封装了对JDBC的操作 简化了JDBC操作 可以少写代码 org apache commons dbutils ...
包org.apache.commons.dbutils DbUtils是一个为简化JDBC操作的小类库. 接口摘要 ResultSetHandler 将ResultSet转换为别的对象的工具. RowProcessor 将ResultSet行转换为别的对象的工具. 类摘要 BasicRowProcessor ...