java中QueryRunner类实现增删改查详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 list = qr.query(conn, sql, new ArrayListHandler());

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(Ledger.class)); System.out.println(legder);

}

* 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 list = qr.query(conn, sql, new BeanListHandler(Ledger.class)); for(Ledger ledger : 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 map = qr.query(conn, sql,new MapHandler());

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> list = qr.query(conn, sql,new MapListHandler());

for(Map map : list){

for(String key : map.keySet()){

System.out.print(key+" "+map.get(key));

}

System.out.println();

相关文档
最新文档