DBUtils (30)
DBUtils是java編程中的數據庫操作實用工具,小巧簡單實用。
DBUtils封裝了對JDBC的操作,簡化了JDBC操作,可以少寫代碼。
Dbutils三個核心功能介紹
一、? QueryRunner中提供對sql語句操作的API.
二、 ResultSetHandler接口,用于定義select操作后,怎樣封裝結果集.
三、? DbUtils類,它就是一個工具類,定義了關閉資源與事務處理的方法
?
1、DBUtils就是JDBC的簡化開發工具包。需要項目導入commons-dbutils-1.6.jar才能夠正常使用DBUtils工具。DBUtils是apache commons組件的一個成員。
2、?QueryRunner實現插入操作。 //?update(Connection conn, String sql, Object... params) ,用來完成表數據的增加、刪除、更新操作
public void insert(){try {//獲取一個用來執行SQL語句的對象 QueryRunnerQueryRunner qr = new QueryRunner();String sql = "INSERT INTO zhangwu(name,money,parent) VALUES(?,?,?)";Object[] params = {"股票收入", 5500, "收入"};Connection conn = JDBCUtils.getConnection();int line = qr.update(conn,sql,params);// 用來完成表數據的增加、刪除、更新操作 返回值是更新的條數 //結果集處理 System.out.println("line = " + line); } catch (SQLException e) { throw new RuntimeException(e); } }3、QueryRunner實現更新: //?update(Connection conn, String sql, Object... params) ,用來完成表數據的增加、刪除、更新操作
public void update(){try {//創建一個QueryRunner對象,用來完成SQL語句的執行QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "UPDATE zhangwu SET money = money+1000 WHERE name=?";Object[] params = {"股票收入"};Connection conn = JDBCUtils.getConnection();int line = qr.update(conn, sql, params);//結果集的處理System.out.println("line="+line);} catch (SQLException e) {throw new RuntimeException(e);} }4、QueryRunner實現刪除:?//??update(Connection conn, String sql, Object... params) ,用來完成表數據的增加、刪除、更新操作
public void delete(){try {//創建一個QueryRunner對象,用來完成SQL語句的執行QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "DELETE FROM zhangwu WHERE name = ?";Object[] params = {"股票收入"};Connection conn = JDBCUtils.getConnection();int line = qr.update(conn, sql, params);//結果集的處理System.out.println("line="+line);} catch (SQLException e) {throw new RuntimeException(e);} }5、QueryRunner實現查詢操作? ?//??query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用來完成表數據的查詢操作
JavaBean就是一個類,在開發中常用封裝數據。具有如下特性
?6、?ArrayHandler與ArrayListHandler查詢
//? ArrayHandler:將結果集中的第一條記錄封裝到一個Object[]數組中,數組中的每一個元素就是這條記錄中的每一個字段的值
public class ArrayHandlerDemo {@Testpublic void method(){try {//獲取QueryRunner對象QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT * FROM zhangwu";Object[] params = {};Connection conn = JDBCUtils.getConnection();Object[] objArray = qr.query(conn, sql, new ArrayHandler(), params);//結果集的處理 System.out.println( Arrays.toString(objArray) );conn.close();} catch (SQLException e) {e.printStackTrace();}} }?//??ArrayListHandler:將結果集中的每一條記錄都封裝到一個Object[]數組中,將這些數組在封裝到List集合中。
public class ArrayListHandlerDemo {@Testpublic void method(){try {//獲取QueryRunner對象QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT * FROM zhangwu WHERE money>?";Object[] params = {2000};Connection conn = JDBCUtils.getConnection();List<Object[]> list = qr.query(conn, sql, new ArrayListHandler(), params);//結果集的處理for (Object[] objArray : list) {System.out.println( Arrays.toString(objArray) );}conn.close();} catch (SQLException e) {e.printStackTrace();}} }7、?BeanHandler與BeanListHandler查詢
//??BeanHandler :將結果集中第一條記錄封裝到一個指定的javaBean中。
public class BeanHandlerDemo {@Testpublic void method(){try{//獲取QueryRunner QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT * FROM zhangwu WHERE id=?";Object[] params = {1};Connection conn = JDBCUtils.getConnection();ZhangWu zw = qr.query(conn, sql, new BeanHandler<ZhangWu>(ZhangWu.class), params);//結果集處理 System.out.println(zw);conn.close();} catch(SQLException e){throw new RuntimeException(e);}} }//??BeanListHandler :將結果集中每一條記錄封裝到指定的javaBean中,將這些javaBean在封裝到List集合中
public class BeanListHandlerDemo {@Testpublic void method(){try{//獲取QueryRunner QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT * FROM zhangwu WHERE money>?";Object[] params = {2000};Connection conn = JDBCUtils.getConnection();List<ZhangWu> list = qr.query(conn, sql, new BeanListHandler<ZhangWu>(ZhangWu.class), params);//結果集處理for (ZhangWu zw : list) {System.out.println(zw);}conn.close();} catch(SQLException e){throw new RuntimeException(e);}} }8、ColumnListHandler與ScalarHandler查詢
// ColumnListHandler:將結果集中指定的列的字段值,封裝到一個List集合中
public class ColumnListHandlerDemo {@Testpublic void method(){try {//獲取QueryRunner對象QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT name FROM zhangwu WHERE money>?";Object[] params = {2000};Connection conn = JDBCUtils.getConnection();List<String> list = qr.query(conn, sql, new ColumnListHandler<String>(), params); //結果集的處理for (String str : list) {System.out.println(str);}conn.close();} catch (SQLException e) {e.printStackTrace();}} }// ScalarHandler:它是用于單數據。例如select count(*) from 表操作。
public class ScalarHandlerDemo {@Testpublic void method(){try {//獲取QueryRunner對象QueryRunner qr = new QueryRunner();//執行SQL語句String sql = "SELECT MAX(money) FROM zhangwu";Object[] params = {};Connection conn = JDBCUtils.getConnection();Double max = qr.query(conn, sql, new ScalarHandler<Double>(), params);//結果集的處理System.out.println("max=" + max);conn.close();} catch (SQLException e) {e.printStackTrace();}} }?
?
轉載于:https://www.cnblogs.com/ivan5277/p/10082878.html
總結
以上是生活随笔為你收集整理的DBUtils (30)的全部內容,希望文章能夠幫你解決所遇到的問題。