java中QueryRunner类实现增删改查详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA中DBUtils的QueryRunner类实现增删改查详解
一.QueryRunner类实现增删改
public static void main(String[] args) throws Exception{
//使用自己的工具类,获取数据库的连接对象
Connection conn = MyJDBCUtils.getConnection();
//创建QueryRunner类对象
QueryRunner qr = new QueryRunner();
String sql = "UPDATE gjp_ledger set money=? , ldesc=? where lid=?";
Object[] params = {998,"买钻石",3};
int result = qr.update(conn, sql, params);
System.out.println(result);
DbUtils.close(conn);
}
二.QueryRunner类获取查询结果集ResultSetHandler
1.常用Handler
* ArrayHandler 将结果集第一行转成对象数组
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger where lid=?";
//结果集处理方式,ArrayHandler 第一行转成对象数组
QueryRunner qr = new QueryRunner();
Object[] objects = qr.query(conn, sql, new ArrayHandler(),3);
for(Object obj : objects){
System.out.println(obj);
}
}
* ArrayListHandler 将结果集中的每一行数据都转成一个对象数组,再将转成的多个对象数组存放到List中
public static void main(String[] args) throws Exception{ Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger";
QueryRunner qr = new QueryRunner();
//执行query方法,传递连接对象,SQL语句,结果集处理方式ArrayListHandler List
for(Object[] objects : list){
for(Object obj : objects){
System.out.print(obj+" ");
}
System.out.println();
}
}
* BeanHandler 将结果集第一行数据封装到一个对应的业务类实例中
(1): 定义业务数据类Ledger(实体类,javaBean)
public class Ledger {
//要生成空参、有参构造、set和get方法、toString方法
private int lid;
private String parent;
private double money;
private int sid;
private String account;
private String createtime;
private String ldesc;
}
* (2)测试案例代码
public static void main(String[] args) throws Exception{
Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger";
QueryRunner qr = new QueryRunner();
//BeanHandler泛型,构造方法(和反射有关系的对象)
Ledger legder = qr.query(conn, sql, new BeanHandler
}
* BeanListHandler 将结果集中的每一行数据都封装到一个对应的业务类实例中,再将多个业务类实例对象存放到List里。
public static void main(String[] args) throws Exception { Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger";
//结果集处理方式,BeanListHandler 每一行数据封装到业务数据类中
QueryRunner qr = new QueryRunner();
List
System.out.println(ledger);
}
}
* MapHandler 将结果集中的第一行数据封装到一个Map中,key是列名,value是对应的值。
public static void main(String[] args) throws Exception { Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger";
//结果集处理方式,MapHandler 封装到一个Map集合中,存储键值对集合QueryRunner qr = new QueryRunner();
Map
for(String key : map.keySet()){
System.out.println(key+" "+map.get(key));
}
}
* MapListHandler 将结果集中的每一行数据都封装到一个Map里,然后再将多个Map 存放到List
public static void main(String[] args) throws Exception{ Connection conn = MyJDBCUtils.getConnection();
String sql = "SELECT * FROM gjp_ledger";
//结果集处理方式,MapListHandler 数据中的每一行封装成Map集合,多个Map集合存储到List集合
QueryRunner qr = new QueryRunner();
List
for(Map
for(String key : map.keySet()){
System.out.print(key+" "+map.get(key));
}
System.out.println();