您的位置:首页 > 编程语言 > Java开发

DBUtils练习,增删改查,ResultSetHandler的9个结果处理器

2017-07-04 16:01 239 查看
/**
* DBUtils练习,增删改查,ResultSetHandler的9个结果处理器
*/
public class TestDBUtils {

@Test
public void testSelect() throws SQLException {
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
List<User> query = queryRunner.query("select * from user where password=?",
new BeanListHandler<User>(User.class), 321);
for (User u : query) {
System.out.println(u);
}
}

@Test
public void testInsert() throws SQLException {
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
queryRunner.update("insert into user(username,password,email,birthday) values(?,?,?,?)",
"老张", "123", "cx@qq.com", "2013-3-2");
}

@Test
public void testUpdate() throws SQLException {
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
queryRunner.update("update user set username=?,password=? where id=?",
"王婉婉", "321", 2);
}

@Test
public void testDelete() throws SQLException {
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
queryRunner.update("delete from user where id=?",
2);
}

@Test
public void testBatch() throws SQLException {
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
Object[][] objects = new Object[10][4];
for (int i = 0; i < objects.length; i++) {
objects[i][0] = "程啸" + i;
objects[i][1] = "aaa" + i;
objects[i][2] = i + "@q.c";
objects[i][3] = "2017-02-" + i;
}
queryRunner.batch("insert into user(username,password,email,birthday) values(?,?,?,?)", objects);
}

@Test//ArrayHandler适合取1条数据,把这条数据的每列值封装到一个数组中
public void test1() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
Object[] query = qr.query("select * from user where id=?", new ArrayHandler(), 13);
for (Object o : query)
System.out.println(o);
}

@Test//ArrayListHandler适合取多条数据,把这条数据的每列值封装到一个数组中,把数组封装到List中
public void test2() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
List<Object[]> query = qr.query("select * from user", new ArrayListHandler());
for (Object[] o : query) {
for (Object o1 : o)
System.out.print(o1);
System.out.println();
}
}

@Test//ColumnListHandler取某一列的数据,封装到List中
public void test3() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
List<Object> query = qr.query("select username,password from user", new ColumnListHandler<Object>(2));
for (Object u : query) {
System.out.println(u);
}
}

@Test//KeyedHandler:取多条数据,每一条记录封装到一个Map中,再把这个Map封装到另一个Map中,key为指定的字段值
public void test4() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
Map<Object, Map<String, Object>> query = qr.query("select id,username,password from user where username=?",
new KeyedHandler<Object>(1), "程啸2");
for (Map.Entry<Object, Map<String, Object>> entry : query.entrySet()) {
System.out.println(entry.getKey());
for (Map.Entry<String, Object> entry1 : entry.getValue().entrySet()) {
System.out.println(entry1.getKey() + "-->" + entry1.getValue());
}
}
}

@Test//MapHandler适合取1条数据,把当前记录的列名和列值放到一个Map中
public void test5() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
Map<String, Object> query = qr.query("select * from user where id=?", new MapHandler(), 22);
for (Map.Entry<String, Object> entry : query.entrySet())
System.out.println(entry.getKey() + ":" + entry.getValue());
}

@Test//MapListHandler:取多条数据,每一条记录封装到一个Map中,再把这个Map封装到List中
public void test6() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
List<Map<String, Object>> query = qr.query("select id,username,password from user where username=?",
new MapListHandler(), "程啸2");
for (Map<String, Object> map : query) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + "-->" + entry.getValue());
}
}
}

@Test//ScalarHandler:适合取单行单列数据
public void test7() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
Object query = qr.query("select count(*) from user where username=?",
new ScalarHandler<Object>(1), "程啸2");
System.out.println(query.getClass().getName());
}

@Test//BeanHandler:适合取单条数据,并返回一个对象
public void test8() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
Object query = qr.query("select * from user where username=?",
new BeanHandler<User>(User.class), "程啸2");
System.out.println(query);
}

@Test//BeanListHandler:适合取多行数据,并返回对象List
public void test9() throws SQLException {
QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
List<User> list = qr.query("select * from user where username=?",
new BeanListHandler<User>(User.class), "程啸2");
for (User u:list) {
System.out.println(u);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c3p0 java
相关文章推荐