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

          fastmybatisMyBatis 簡化開發(fā)框架

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

          fastmybatis是一個mybatis開發(fā)框架,目的為簡化mybatis的開發(fā),讓開發(fā)更高效。

          • 零配置快速上手

          • 無需編寫xml文件即可完成CRUD操作

          • 支持mysql,sqlserver,oracle,postgresql,sqlite

          • 支持自定義sql,sql語句可以寫在配置文件中,同樣支持mybatis標(biāo)簽

          • 支持與spring-boot集成

          • 輕量級,無侵入性,可與傳統(tǒng)mybatis用法共存

          fastmybatis與MyBatis generator對比

          快速開始(springboot)

          • 新建一個springboot項(xiàng)目

          • pom.xml添加fastmybatis-spring-boot-starter

          <dependency>
              <groupId>net.oschina.durcframework</groupId>
              <artifactId>fastmybatis-spring-boot-starter</artifactId>
              <version>1.0.2</version>
          </dependency>
          • 假設(shè)數(shù)據(jù)庫有張t_user表,添加對應(yīng)的實(shí)體類TUser.java和MapperTUserMapper.java

          • application.propertis中配置數(shù)據(jù)庫連接

          • 編寫測試用例

          @Autowired
          TUserMapper mapper;
              
          // 根據(jù)主鍵查詢
          @Test
          public void testGetById() {
              TUser user = mapper.getById(3);
              System.out.println(user);
          }

          Mapper方法列表

          /**
           * 根據(jù)對象查詢,可以傳主鍵值,也可以傳整個對象
           * 
           * @param id
           * @return 返回實(shí)體對象,沒有返回null
           */
          Entity getById(ID id);
          
          /**
           * 根據(jù)條件查找單條記錄
           * @param query 查詢條件
           * @return 返回實(shí)體對象,沒有返回null
           */
          Entity getByQuery(@Param("query")Query query);
          
          /**
           * 根據(jù)字段查詢一條記錄
           * @param column 數(shù)據(jù)庫字段名
           * @param value 字段值
           * @return 返回實(shí)體對象,沒有返回null
           */
          Entity getByColumn(@Param("column")String column,@Param("value")Object value);
          
          /**
           * 查詢總記錄數(shù)
           * 
           * @param query 查詢條件
           * @return 返回總記錄數(shù)
           */
          long getCount(@Param("query")Query query);  
          
          /**
           * 根據(jù)字段查詢集合
           * @param column 數(shù)據(jù)庫字段名
           * @param value 字段值
           * @return 返回實(shí)體對象集合,沒有返回空集合
           */
          List<Entity> listByColumn(@Param("column")String column,@Param("value")Object value);
          
          /**
           * 條件查詢
           * 
           * @param query 查詢條件
           * @return 返回實(shí)體對象集合,沒有返回空集合
           */
          List<Entity> list(@Param("query")Query query);
          
          /**
           * 查詢指定字段結(jié)果
           * @param columns 返回的字段
           * @param query 查詢條件
           * @return 返回結(jié)果集
           */
          List<Map<String, Object>> listMap(@Param("columns")List<String> columns, @Param("query")Query query);
          
          /**
           * 新增,新增所有字段
           * 
           * @param entity
           * @return 受影響行數(shù)
           */
          int save(Entity entity);
          
          /**
           * 新增(忽略null數(shù)據(jù))
           * @param entity
           * @return 受影響行數(shù)
           */
          int saveIgnoreNull(Entity entity);
          
          /**
           * 批量添加,只支持mysql,sqlserver2008及以上數(shù)據(jù)庫.<br>
           * <strong>若要兼容其它版本數(shù)據(jù)庫,請使用saveMulti()方法</strong>
           * @param entitys
           * @return
           */
          int saveBatch(@Param("entitys")List<Entity> entitys);
          
          /**
           * 批量添加,兼容更多的數(shù)據(jù)庫版本.<br>
           * 此方式采用union all的方式批量insert,如果是mysql或sqlserver2008及以上推薦saveBatch()方法.
           * @param entitys
           * @return
           */
          int saveMulti(@Param("entitys")List<Entity> entitys);
          
          /**
           * 修改,修改所有字段
           * 
           * @param entity
           * @return 受影響行數(shù)
           */
          int update(Entity entity);
          
          /**
           * 根據(jù)主鍵更新不為null的字段
           * 
           * @param entity
           * @return 受影響行數(shù)
           */
          int updateIgnoreNull(Entity entity);
          
          /**
           * 根據(jù)條件批量更新
           * 
           * @param entity 待更新的數(shù)據(jù),可以是實(shí)體類,也可以是Map{@literal<String,Object>}
           * @param query 更新條件
           * @return 受影響行數(shù)
           */
          int updateByQuery(@Param("entity") Object entity, @Param("query") Query query);
          
          /**
           * 刪除
           * 
           * @param entity
           * @return 受影響行數(shù)
           */
          int delete(Entity entity);
          
          /**
           * 根據(jù)id刪除
           * 
           * @param id 主鍵id
           * @return 受影響行數(shù)
           */
          int deleteById(ID id);
          
          /**
           * 根據(jù)條件刪除
           * 
           * @param query
           * @return 受影響行數(shù)
           */
          int deleteByQuery(@Param("query")Query query);

          Query查詢對象

          查詢姓名為張三,并且年齡為22歲的用戶:
          Query query = new Query().eq("username","張三").eq("age",22);
          List<User> users = mapper.list(query);
          
          查詢年齡為10,20,30的用戶:
          Query query = new Query().in("age",Arrays.asList(10,20,30));
          List<User> users = mapper.list(query);
          
          查詢注冊日期大于2017-11-11的用戶:
          Date regDate = ...
          Query query = new Query().gt("reg_date",regDate);
          List<User> users = mapper.list(query);
          
          查詢性別為男的,年齡大于等于20歲的用戶,按年齡降序:
          Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);
          List<User> users = mapper.list(query);
          
          分頁查詢:
          Query query = new Query().eq("age",10).page(1,10); // 第一頁,每頁10條數(shù)據(jù)
          List<User> users = mapper.list(query);
          
          查詢總記錄數(shù):
          Query query = new Query().eq("age",10).page(1,10); // 第一頁,每頁10條數(shù)據(jù)
          long total = mapper.getCount(query); // 該條件下總記錄數(shù)
          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  白丝自慰在线 | 精品亲子伦一区二区三区 | 激情五月毛片 | 五月成人色情网 | 99s精品|