Java 工具庫Hutool-db數據庫簡單操作


一、工具簡介

官網地址https://www.hutool.cn/

Hutool 是一個小而全的 Java 工具類庫,通過靜態方法封裝,降低相關 API 的學習成本,提高工作效率,使 Java 擁有函數式語言般的優雅,讓 Java語 言也可以“甜甜的”。Hutool 對文件、流、加密解密、轉碼、正則、線程、XML、日期、Http客戶端 等 JDK 方法進行封裝,組成各種 Util 工具類。

Hutool 涵蓋了Java開發底層代碼中的方方面面,它既是大型項目開發中解決小問題的利器,也是小型項目中的效率擔當;

Hutool 是項目中“util”包友好的替代,它節省了開發人員對項目中公用類和公用工具方法的封裝時間,使開發專注於業務,同時可以最大限度的避免封裝不完善帶來的 bug。

Hutool 的目標是使用一個工具方法代替一段復雜代碼,從而最大限度的避免“復制粘貼”代碼的問題,徹底改變寫代碼的方式。

二、Hutool-db

數據庫操作不外乎四門功課:增刪改查,在Java的世界中,由於JDBC的存在,這項工作變得簡單易用,但是也並沒有做到使用上的簡化。於是出現了JPA(Hibernate)、MyBatis、Jfinal等解決框架,或解決多數據庫差異問題,或解決SQL維護問題。而Hutool對JDBC的封裝,多數為在小型項目中對數據處理的簡化,尤其只涉及單表操作時。OK,廢話不多,來個Demo感受下。

1、添加配置文件

Maven項目中在src/main/resources目錄下添加db.setting文件(非Maven項目添加到ClassPath中即可):

    ## db.setting文件
    url = jdbc:mysql://localhost:3306/test
    user = root
    pass = 123456
    ## 可選配置
    # 是否在日志中顯示執行的SQL
    showSql = true
    # 是否格式化顯示的SQL
    formatSql = false
    # 是否顯示SQL參數
    showParams = true

2、引入驅動jar

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.2.1</version>
        </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency>

3、增刪查改

    Db.use().insert(
        Entity.create("user")
        .set("name", "unitTestUser")
        .set("age", 66)
    );

插入數據並返回自增主鍵:

    Db.use().insertForGeneratedKey(
        Entity.create("user")
        .set("name", "unitTestUser")
        .set("age", 66)
    );

    Db.use().del(
        Entity.create("user").set("name", "unitTestUser")//where條件
    );

    Db.use().update(
        Entity.create().set("age", 88), //修改的數據
        Entity.create("user").set("name", "unitTestUser") //where條件
    );

注意條件語句除了可以用=精確匹配外,也可以范圍條件匹配,例如表示 age < 12 可以這樣構造Entity:Entity.create("user").set("age", "< 12"),但是通過Entity方式傳入條件暫時不支持同字段多條件的情況。

  • 查詢全部字段
    //user為表名
    Db.use().findAll("user");
  • 條件查詢
Db.use().findAll(Entity.create("user").set("name", "unitTestUser"));
  • 模糊查詢
Db.use().findLike("user", "name", "Test", LikeType.Contains);
  • 分頁查詢
    //Page對象通過傳入頁碼和每頁條目數達到分頁目的
    PageResult<Entity> result = Db.use().page(Entity.create("user").set("age", "> 30"), new Page(10, 20));
  • 執行SQL語句
    //查詢
    List<Entity> = Db.use().query("select * from user where age < ?", 3);

    //更新
    Db.use().execute("update user set age = ? where name = ?", 3, "張三");
  • 事務
    Db.use().tx(new TxFunc() {
    @Override
    public void call(Db db) throws SQLException {
    db.insert(Entity.create("user").set("name", "unitTestUser"));
    db.update(Entity.create().set("age", 79), Entity.create("user").set("name", "unitTestUser"));
    }
    });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM