<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          QuickDAOJava ORM 框架

          聯(lián)合創(chuàng)作 · 2023-09-30 01:44

          QuickDAO

          QuickDAO 是一款簡單,易用,輕量級(jí)的java ORM框架.目前支持 Mysql, SQlite 以及 H2 數(shù)據(jù)庫.

          SpringBoot環(huán)境下由于類加載器問題請(qǐng)慎用,可能會(huì)導(dǎo)致未知問題出現(xiàn)!

          QuickDAO目前沒有在高并發(fā)環(huán)境下實(shí)踐過,因此對(duì)于高并發(fā)項(xiàng)目請(qǐng)慎用.本項(xiàng)目適合于中小項(xiàng)目使用,提供封裝良好的API與數(shù)據(jù)庫進(jìn)行交互,減少樣板代碼,盡可能提高開發(fā)效率!

          目前QuickDAO使用Logback日志框架,DEBUG級(jí)別下會(huì)輸入執(zhí)行的SQL語句!

          快速入門

          1 建立實(shí)體類

          //用戶類
          public class User {
              private long id;
              private String username;
              private String password;
          //用戶設(shè)置表
          public class UserSetting {
              private long id;
              private long userId;
              private String setting;
              private User user;
          //用戶關(guān)注表
          public class UserFollow {
              private long id;
              private long userId;
              private long followerId;
              private User user;
              private User followUser;
          

          2 導(dǎo)入QuickDAO

          QuickDAO基于JDBC,為提高效率,默認(rèn)只支持?jǐn)?shù)據(jù)庫連接池.

          • 導(dǎo)入commons-dbcp(或者其他的DataSource實(shí)現(xiàn)) <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>

          2.1 使用maven

          <dependency>
            <groupId>cn.schoolwow</groupId>
            <artifactId>QuickDAO</artifactId>
            <version>2.4</version>
          </dependency>
          

          3 使用QuickDAO

          QuickDAO支持自動(dòng)建表,自動(dòng)新增字段功能.當(dāng)您在Java代碼中配置好QuickDAO后無需再對(duì)數(shù)據(jù)庫做任何操作.

          BasicDataSource mysqlDataSource = new BasicDataSource();
          mysqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");
          mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/quickdao");
          mysqlDataSource.setUsername("root");
          mysqlDataSource.setPassword("123456");
          //指定???體所在包名
          cn.schoolwow.quickdao.dao.DAO dao = QuickDAO.newInstance()
                              .dataSource(mysqlDataSource)
                              .packageName("cn.schoolwow.quickdao.entity")
                              .build();
          //之后所有的操作使用dao對(duì)象完成
          

          3.1 簡單查詢與更新操作

          //根據(jù)id查詢
          User user = dao.fetch(User.class,1);
          //根據(jù)屬性查詢
          User user = dao.fetch(User.class,"username","quickdao");
          List<User> user = dao.fetchList(User.class,"password","123456");
          //保存用戶
          dao.save(user);
          dao.save(userList);
          //刪除用戶
          dao.delete(User.class,1);
          dao.delete(User.class,"username","quickdao");
          

          3.2 復(fù)雜查詢

          List<User> userList = dao.query(User.class)
             .addNotEmptyQuery("username")
             .getList();
          

          關(guān)于復(fù)雜查詢?cè)敿?xì)信息請(qǐng)點(diǎn)此查看

          3.3 外鍵查詢

          List<User> userList = dao.query(User.class)
             .join(UserSetting.class,"id","userId")
             .addNotEmptyQuery("setting")
             .done()
             .getList();
          

          關(guān)于外鍵查詢?cè)敿?xì)信息請(qǐng)點(diǎn)此查看

          3.3 分頁排序查詢

          List<User> userList = dao.query(User.class)
             .pageNumber(1,10)
             .orderByDesc("id")
             .getList();
          

          關(guān)于分頁排序詳細(xì)信息請(qǐng)點(diǎn)此查看

          3.4 建表刪表

          //刪除User表
          dao.drop(User.class);
          //建立User表
          dao.create(User.class);
          

          詳細(xì)手冊(cè)

          • 實(shí)體注解 QuickDAO有自動(dòng)建表功能,用戶可使用注解為實(shí)體類信息添加相關(guān)字段信息.同時(shí)QuickDAO能夠自動(dòng)匹配實(shí)體類和數(shù)據(jù)庫表,自動(dòng)添加新增的實(shí)體類字段信息.

          • 配置信息 QuickDAO可配置是否自動(dòng)新建表,是否建立外鍵約束,忽略表和包等等.

          • 事務(wù)功能 QuickDAO基于JDBC封裝了簡單的事務(wù)功能.若需使用事務(wù),請(qǐng)查詢此手冊(cè)

          請(qǐng)注意: 開啟事務(wù)時(shí)只作用于調(diào)用方法的dao對(duì)象,若配置有多個(gè)dao對(duì)象,對(duì)其他dao對(duì)象無影響(也即其他dao對(duì)象不會(huì)跟著開啟事務(wù)功能)!

          QuickDAO本身提供了一套較完整的JUnit測(cè)試用例,可查看ConditionTestDAOTest.

          反饋

          目前QuickDAO還不成熟,還在不斷完善中.若有問題請(qǐng)?zhí)峤籌ssue,作者將第一時(shí)間跟進(jìn)并努力解決.同時(shí)歡迎熱心認(rèn)識(shí)提交PR,共同完善QuickDAO項(xiàng)目!

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色一级在线视频 | 综合不卡在线 | 日韩人妻无码一级毛片欧美 | 五月色综合网 | 天天视频有没有黄色。 |