javaSE传智博客视频学习day30笔记————DButils
DBUtils是apache commons组件一个成员,它的目的是简化JDBC的开发。要使用它必须导入commons-dbutils-1.6.jar才能使用。
百度:commons-dbutils-1.6.jar
直接导包
QueryRunner是核心类,它有两个方法:处理增删改的update()与处理查询的query()。
增删改是用update(Connection conn, String sql, Object... params)方法,返回值是被处理的行数,看见参数,我们就知道怎么做了:
第一个是连接对象,第二是sql语句,第三个是参数列表。
一个例子:
获取连接对象的脚本:
public class JDBCUtils {
private static String DRIVERNAME="com.mysql.jdbc.Driver";
private static String URL="jdbc:mysql://localhost:3306/account_manager";
private static String USER="root";
private static String PASSWORD="123";
static{
try {
Class.forName(DRIVERNAME);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException{
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
return con;
}
}
static{ 代码 }的写法叫做静态代码块,当类被加载时(如创建对象,调用变量或者方法),就会执行一次,并且只会执行一次。
再调用就不会执行了。
增加:
public static void add() throws SQLException{
//创建一个QueryRunner对象
QueryRunner qr = new QueryRunner();
//增加操作,发现需要三个参数 链接对象 sql语句 参数
// int line = qr.update(conn, sql, param);
//获取链接
Connection conn = JDBCUtils.getConnection();
//sql语句
String sql = "INSERT INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (?,?,?,?,?,?);";
//参数
Object [] params={16,"工资收入",5000,"现金","2016-10-30","又开资"};
//执行
int line = qr.update(conn, sql, params);
System.out.println(line);
}
删除与修改只是变了sql语句。
查询只是调用了一个query(Connection conn, String sql, ResultSetHandler
第一参数是连接对象
第二个是sql
第三个是ResultSetHandler结果集处理类(用于储存数据的类)
第四个是参数数组
下面的八种类都是实现了ResultSetHandler的接口
ArrayHandler :
会把数据的第一行数据返回到Object的数组中
public static void method1() throws SQLException{
/*
* ArrayHandler 对象返回一个Object数组,并且只返回第一行的数据
*/
//获取QueryRunner 对象
QueryRunner qr = new QueryRunner();
//sql
String sql ="SELECT * FROM gjp_zhangwu where zwid in (10,11) ";
//参数
Object [] param ={};
//链接
Connection conn = JDBCUtils.getConnection();
//查询
Object [] objArray = qr.query(conn, sql, new ArrayHandler(),param);
//打印
System.out.println(Arrays.toString(objArray));
}
ArrayListHandler:
public static void method2() throws SQLException{
/*
* ArrayListHandler
* 返回时List集合类型是Object[]
* 返回全部的数据
*/
QueryRunner qr = new QueryRunner();
Object [] params={};
List
BeanHandler:
BeanHandler把数据放到了一个类的对象中,数据存放在了类的成员变量中。
public static void method3() throws SQLException{
/*
* 将得到的数据返回一个JavaBean类型中
* 只返回第一行
*/
QueryRunner qr = new QueryRunner();
String sql ="SELECT * FROM gjp_zhangwu where zwid=?";
Object [] params ={3};
Connection conn = JDBCUtils.getConnection();
ZhangWu zw = qr.query(conn, sql, new BeanHandler(ZhangWu.class),params);
System.out.println(zw);
}
BeanListHandler:
public static void method4() throws SQLException{
/*
* BeanListHandler
* 返回一个javaBean的集合
* 所有的数据
*/
QueryRunner qr = new QueryRunner();
String sql = "SELECT * FROM gjp_zhangwu";
Connection conn = JDBCUtils.getConnection();
List list = qr.query(conn, sql, new BeanListHandler(ZhangWu.class));
for(ZhangWu s :list){
System.out.println(s);
}
}
ColumnListHandler:
public static void method5() throws SQLException{
/*
* 返回一列的数据
*
*/
QueryRunner qr = new QueryRunner();
String sql = "SELECT flname FROM gjp_zhangwu ";
Connection conn = JDBCUtils.getConnection();
List list = qr.query(conn, sql, new ColumnListHandler());
System.out.println(list);
}
ScalarHandler:
public static void method6() throws SQLException{
/*
* 只返回一个数据
*/
QueryRunner qr =new QueryRunner();
String sql ="SELECT MAX(money) FROM gjp_zhangwu";
Connection conn = JDBCUtils.getConnection();
Double d = qr.query(conn, sql, new ScalarHandler());
System.out.println(d);
}
MapHandler:
public static void method7() throws SQLException{
/*
* 返回第一行数据键值对
*/
QueryRunner qr =new QueryRunner();
String sql ="SELECT * FROM gjp_zhangwu";
Connection conn = JDBCUtils.getConnection();
Map map = qr.query(conn, sql, new MapHandler());
for(String s :map.keySet()){
System.out.println(map.get(s));
}
}
MapListHandler:
public static void method8() throws SQLException{
/*
* 返回所有的数据以键值对的形式
*/
QueryRunner qr = new QueryRunner();
String sql = "SELECT * FROM gjp_zhangwu";
Connection conn = JDBCUtils.getConnection();
List