日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DBUtils (30)

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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就是一個類,在開發中常用封裝數據。具有如下特性

  • 需要實現接口:java.io.Serializable ,通常實現接口這步驟省略了,不會影響程序。
  • 提供私有字段:private 類型 字段名;
  • 提供getter/setter方法:
  • 提供無參構造
  • /** 賬務類*/ public class ZhangWu {private int id;private String name;private double money;private String parent;public ZhangWu() {super();}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}public String getParent() {return parent;}public void setParent(String parent) {this.parent = parent;}@Overridepublic String toString() { //該方法可以省略return "ZhangWu [id=" + id + ", name=" + name + ", money=" + money + ", parent=" + parent + "]";} }

    ?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)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。