QueryRunner类简化了执行SQL语句的代码,它与ResultsetHandler组合在一起就能完成大部分的数据库操作,大大减少编码量。
QueryRunner类提供了两个构造方法,一个是默认的构造方法,一个是需要javax.sql.DataSource作为参数的构造方法。因此,在不用为一个方法提供一个数据库连接的情况下,提供给构造器的DataSource就可以用来获得连接。但是,在使用JDBC操作数据库时,需要使用Connection对象对事务进行管理,因此如果需要开启事务就需要使用不带参数的构造方法。针对不同的数据库操作,QueryRunner类提供了不同的方法,具体如下。
1.query(Connection conn,String sql,ResultSetHandler rsh,Object[] params)方法
该方法用于执行查询操作,其中,参数params表示一个对象数组,该数组中每个元素的值都被用来作为查询语句的置换参数。需要注意的是,该方法会自动处理PreparedStatement和ResultSet的创建和关闭。
值得一提的是,QueryRunner中还有一个方法是query(Connection conn,String sql,Object[]params,ResultSetHandler rsh)。该方法与上述方法唯一不同的地方就是参数的位置。Java1.5增加了新特性:可变参数。可变参数适用于参数个数不确定,类型确定的情况,Java把可变参数当作数组处理。但是,可变参数必须位于最后一项,所以此方法已过期。
2.query(String sql,ResultSetHandler rsh,Object[]params)方法
该方法用于执行查询操作,与第一个方法相比,它不需要将Connection对象传递给方法,它可以从提供构造方法的数据源DataSource或使用的setDataSource()方法中获得连接。
3.query(Connection conn,String sql,ResultSetHandler rsh)方法
该方法用于执行一个不需要置换参数的查询操作。
4.update(Connection conn,String sql,Object[]params)方法
该方法用来执行插入、更新或者删除操作,其中,参数params表示SQL语句中的置换参数。
5.update(Connection conn,String sql)方法
该方法用于执行插入、更新或者删除操作,它不需要置换参数。
网友评论