QueryRunner 类。核心运行类,用于执行CRUD
//执行没有事物的CRUD操作,使用有参构造
QueryRunner(DataSource ds);//构造方法//传入一个连接池对象
int update(String sql,Object… args); //执行增删改
T query(String sql,ResultSetHandler rsh,Object… args); //执行查寻。T为处理的结果集
//代码示例: args是可变参数,给问号设置值的
queryRunner.update("update account set name=?,money=? where id =?", "eee",20000,4);
List<Accout> list = queryRunner.query("select * from account",new ResultSetHandler<List<Accout>>(){})
MapHandler//将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是表中列的值。
MapListHandler//将多条记录封装到一个装有Map的List集合中。
//代码示例
QueryRunner queryRunner = new QueryRunner(传入一个连接池对象);
Map<String,Object> map = queryRunner.query("select * from user where id=?",new MapHandler(),1);
List<Map<String,Object>> list = queryRunner.query("select * from user",new MapListHandler());
BeanHandler//将一条数据封装到一个指定的JavaBean中
BeanListHandler//将每一条数据封装到一个JavaBean中,在将多个JavaBean的实例封装到一个List集合中
//代码示例:
QueryRunner queryRunner = new QueryRunner(传入一个连接池对象);
User user = queryRunner.query("select * from user where id=?",new BeanHandler<User>(User.class),1);
List<User> list = queryRunner.query("select * from user",new BeanListHandler<User>(User.class));
ScalarHandler//用来封装单个值的。例如select count(*) from 表名(返回long类型)。
//代码示例:
Object obj = qr.query("select count(*) from user", new ScalarHandler());
//虽然他的返回值是long类型但是想要用long类型来接收要强转
long obj = (long) qr.query("select count(*) from user", new ScalarHandler());
ArrayHandler//将获取到的一条记录封装到一个Object数组中
//代码示例:
Object[] objs = queryRunner.query("select * from account where id = ?",new ArrayHandler(),1);
ArrayListHandler//将获取到的每一条记录封装到一个Object数组中,在将每一个数组封装到List集合中
List<Object[]> list = queryRunner.query("select * from account",new ArrayListHandler());