<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>

          Memory超輕量級 Java 持久化工具

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

          memory : 一個比dbutils更小巧、好用的的持久化工具。

          JDBC的規(guī)范上看,其對數(shù)據(jù)訪問層有相當簡潔的抽象:1、連接(connection) 2、語句(statement)、3結(jié)果集(result set),我們對數(shù)據(jù)庫做的事情無非:連接數(shù)據(jù)庫,執(zhí)行語句,拿到結(jié)果。因此,持久化工具的目的不言自明:進一步簡化連接的管理、語句的執(zhí)行、結(jié)果集提取等操作。

          Memory在設計與實現(xiàn)上,都借鑒了Dbutils,其相對于hibernate,mybatis這些龐然大物,已經(jīng)是一個極其小巧的工具。 但是Memory的類和接口更少(不超過10個),體積更?。ㄖ挥卸畮譑),數(shù)目和體積都約為dbutils的1/3,卻添加了非常實用的功能:

          • 將簡單的POJO對象直接持久化到數(shù)據(jù)庫中;

          • 打印運行時出錯的SQL語句,其可以直接拷貝到數(shù)據(jù)庫客戶端上進行調(diào)試;

          • 直截了當?shù)姆猪摬樵儭?/p>

          代碼示例:

           public static void testCrud() {
               /**
               * 創(chuàng)建一條記錄
               */
               Product product = new Product();
               product.setName("apple");
               product.setStock(10);
               product.setStatus(true);
               product.setCreatedDate(new Date());
               System.out.print("入庫之前Product沒有ID:");
               System.out.println(product);
               memory.create(Product.class, product);
          
               /**
               * 讀取這條記錄
               */
               product = memory.read(Product.class, product.getId());
               System.out.print("使用CRUD的read方法讀?。?);
               System.out.println(product);
          
               /**
               * 換一種方式讀取
               */
               product = memory.query("select * from product where id = ?",
                   new BeanHandler<Product>(Product.class), product.getId());
               System.out.print("使用CQRS的query方法讀?。?);
               System.out.println(product);
          
               /**
               * 更新這條記錄
               */
               product.setStock(15);
               product.setStatus(true);
               product.setCreatedDate(new Date());
               memory.update(Product.class, product);
               // 查看結(jié)果
               product = memory.read(Product.class, product.getId());
               System.out.print("查看更新結(jié)果:");
               System.out.println(product);
          
               /**
               * 刪除一條記錄
               */
               memory.delete(Product.class, product.getId());
               // 查看結(jié)果
               product = memory.read(Product.class, product.getId());
               System.out.print("查看刪除結(jié)果:");
               System.out.println(product);
           }
          瀏覽 98
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <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>
                  一级免费黄片 | 一级女人毛片 | 国产精品人妻无码久久久苍井空 | 午夜无码久久 | 午夜天堂 |