/**QueryRunner类的方法3大类
* 1,update(sql);update(Connection,sql)...
* 2,query(sql,ResultSetHandler);query(Connection,sql,ResultSetHandler)...
* 3,batch(sql,Object[][]);batch(Connection,Object[][])
* 需要给连接的可以控制事务,不需要给连接的默认自动提交
*/
//给一个数据源,有两种c3p0的数据源dbcp的数据源
/**
* c3p0数据源
* new ComboPooledDataSource()默认回去src下找c3p0-config.xml文件
* <c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/bookstore</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
...还要很多
*/
QueryRunner qr = new QueryRunner(new ComboPooledDataSource());
/**dbcp数据源
* db.properties
* driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/bookstore
username=root
password=root
*/
Properties pfile = new Properties();
pfile.load(new FileInputStream("db.properties"));//加载db.properties文件中的内容
DataSource dDataSouce = BasicDataSourceFactory.createDataSource(pfile);//得到dataSource
QueryRunner qr1 = new QueryRunner(dDataSouce);
//执行更新语句
//System.out.println(qr.update("insert user(username)values('cnd');"));
//执行查询语句
/***
* 查询结果接收类ResultSetHandler(顶层接口) 把查询到的数据集放到不同的数据存贮结构中
* BeanHandler将查询的一行数据封装到一个对象中返回。只查询一行数据
* ArrayHandler将查询到的数据放到数组中,只返回一行,每个下标存储一列数据。
* MapHandler将查询到数据放到Map集合中,只返回一行,key是列名value是列值
* ScalarHandler返回一行一列(一个单元格)一般用于函数返回值,指定列或者列名查看
* KeyedHandler将查询到数据放到Map<key1,Map<key2,value>>一个集合中,key1可以指定;返回所有数据。
* Map<可以指定那一列,Map<列名,列值>> mk1列值mv1一行数据mk2列名mv2列值
* ArrayListHandler将查询到的一行数据放到数组中,在把数组放到list集合中,数组中每个下标存储一行的一列数据。list中每个元素存贮一行数据
* ColumnListHandler指定查询某一列的全部数据。封装到list集合中
* BeanListHandler将查询的一行数据封装到一个对象中返回。查询所有数据,在将对象(一行数据)放到list集合中
* MapListHandler将查询到数据放到Map集合中,key是列名value是列值,再讲map放到list集合中
*/
// Object user = qr.query("select * from user;", new ScalarHandler());
// List<User> user = qr.query("select * from user;", new BeanListHandler<User>(User.class));
// Object[] user = qr.query("select * from user;", new ArrayHandler());
/* Map<String,Object> user = qr.query("select * from user;", new MapHandler());
for (Entry<String, Object> en: user.entrySet()) {
System.out.println(en.getKey()+" : "+en.getValue());
}*/
//Object user = qr.query("select * from user;", new KeyedHandler(2));
// List<Object[]> query = qr.query("select * from user;", new ArrayListHandler());
/* for (Object ob : query) {
System.out.println(ob);
}*/
/* List<User> q = qr.query("select * from user;", new BeanListHandler<User>(User.class));
for (User ob : q) {
System.out.println(ob.getUsername());
}*/
// List<Map<String,Object>> q = qr.query("select * from user;", new MapListHandler());
// for (Map<String,Object> mp: q) {
// System.out.println("------");
// for (Entry<String,Object> en :mp.entrySet()) {
// System.out.println(en.getKey()+" : "+en.getValue());
// }
// }
Object q = qr1.query("select * from user;", new ScalarHandler("username"));
System.out.println(q);
DBUtils简写操作数据库代码
猜你喜欢
转载自www.cnblogs.com/xiaobaiyize/p/9504750.html
今日推荐
周排行