{"id":399,"date":"2020-12-05T18:27:02","date_gmt":"2020-12-05T10:27:02","guid":{"rendered":"http:\/\/moyisuiying.com\/?p=399"},"modified":"2020-12-10T14:23:36","modified_gmt":"2020-12-10T06:23:36","slug":"mybatis-plus%e5%ad%a6%e4%b9%a0%ef%bc%88%e4%ba%8c%ef%bc%89-mybatiplus%e7%9a%84basemapper%e5%92%8ciservice%e8%af%a6%e8%a7%a3%e4%bb%a5%e5%8f%8a%e8%87%aa%e5%ae%9a%e4%b9%89%e5%ae%9e","status":"publish","type":"post","link":"http:\/\/moyisuiying.com\/index.php\/mybatis\/399.html","title":{"rendered":"Mybatis-plus\u5b66\u4e60\uff08\u4e8c\uff09\u2014\u2014MybatiPlus\u7684BaseMapper\u548cIService\u8be6\u89e3\u4ee5\u53ca\u81ea\u5b9a\u4e49\u5b9e\u73b0"},"content":{"rendered":"\n<h1>Mybatis-plus\u5b66\u4e60\uff08\u4e8c\uff09\u2014\u2014MybatiPlus\u7684BaseMapper\u548cIService\u8be6\u89e3\u4ee5\u53ca\u81ea\u5b9a\u4e49\u5b9e\u73b0<\/h1>\n\n\n\n<h2>2.\u4f7f\u7528BaseMapper\u4ee5\u53ca\u4e86\u89e3\u5176\u539f\u7406<\/h2>\n\n\n\n<h3>2.1\u67e5\u770bBaseMapper\u7684\u6e90\u7801<\/h3>\n\n\n\n<p>AccountDao.java\u63a5\u53e3\u7ee7\u627f\u4e8emybatis-plus\u63d0\u4f9b\u7684BaseMapper.java\u63a5\u53e3\uff0c\u800cBaseMapper.java\u63a5\u53e3\u7ee7\u627f\u4e8eMapper.java\u63a5\u53e3\u3002\u6211\u4eec\u9996\u5148\u770bMapper.java\u63a5\u53e3\u91cc\u9762\u7684\u65b9\u6cd5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>**\n * \u9876\u7ea7Mapper\n *\n * @author nieqiurong 2019\/4\/13.\n *\/\npublic interface Mapper&lt;T> {\n\n}<\/code><\/pre>\n\n\n\n<p>\u8be5\u63a5\u53e3\u91cc\u9762\u6ca1\u6709\u4efb\u4f55\u65b9\u6cd5\uff0c\u53ea\u662f\u5b9a\u4e49\u4e86\u4e00\u4e2a\u63a5\u53e3\u7c7b\u3002<\/p>\n\n\n\n<p>\u7136\u540e\u63a5\u7740\u770bBaseMapper.java\u63a5\u53e3\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Mapper \u7ee7\u627f\u8be5\u63a5\u53e3\u540e\uff0c\u65e0\u9700\u7f16\u5199 mapper.xml \u6587\u4ef6\uff0c\u5373\u53ef\u83b7\u5f97CRUD\u529f\u80fd\n * &lt;p>\u8fd9\u4e2a Mapper \u652f\u6301 id \u6cdb\u578b&lt;\/p>\n *\n * @author hubin\n * @since 2016-01-23\n *\/\npublic interface BaseMapper&lt;T> extends Mapper&lt;T> {\n\n    \/**\n     * \u63d2\u5165\u4e00\u6761\u8bb0\u5f55\n     *\n     * @param entity \u5b9e\u4f53\u5bf9\u8c61\n     *\/\n    int insert(T entity);\n\n    \/**\n     * \u6839\u636e ID \u5220\u9664\n     *\n     * @param id \u4e3b\u952eID\n     *\/\n    int deleteById(Serializable id);\n\n    \/**\n     * \u6839\u636e columnMap \u6761\u4ef6\uff0c\u5220\u9664\u8bb0\u5f55\n     *\n     * @param columnMap \u8868\u5b57\u6bb5 map \u5bf9\u8c61\n     *\/\n    int deleteByMap(@Param(Constants.COLUMN_MAP) Map&lt;String, Object> columnMap);\n\n    \/**\n     * \u6839\u636e entity \u6761\u4ef6\uff0c\u5220\u9664\u8bb0\u5f55\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null,\u91cc\u9762\u7684 entity \u7528\u4e8e\u751f\u6210 where \u8bed\u53e5\uff09\n     *\/\n    int delete(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u5220\u9664\uff08\u6839\u636eID \u6279\u91cf\u5220\u9664\uff09\n     *\n     * @param idList \u4e3b\u952eID\u5217\u8868(\u4e0d\u80fd\u4e3a null \u4ee5\u53ca empty)\n     *\/\n    int deleteBatchIds(@Param(Constants.COLLECTION) Collection&lt;? extends Serializable> idList);\n\n    \/**\n     * \u6839\u636e ID \u4fee\u6539\n     *\n     * @param entity \u5b9e\u4f53\u5bf9\u8c61\n     *\/\n    int updateById(@Param(Constants.ENTITY) T entity);\n\n    \/**\n     * \u6839\u636e whereEntity \u6761\u4ef6\uff0c\u66f4\u65b0\u8bb0\u5f55\n     *\n     * @param entity        \u5b9e\u4f53\u5bf9\u8c61 (set \u6761\u4ef6\u503c,\u53ef\u4ee5\u4e3a null)\n     * @param updateWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null,\u91cc\u9762\u7684 entity \u7528\u4e8e\u751f\u6210 where \u8bed\u53e5\uff09\n     *\/\n    int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper&lt;T> updateWrapper);\n\n    \/**\n     * \u6839\u636e ID \u67e5\u8be2\n     *\n     * @param id \u4e3b\u952eID\n     *\/\n    T selectById(Serializable id);\n\n    \/**\n     * \u67e5\u8be2\uff08\u6839\u636eID \u6279\u91cf\u67e5\u8be2\uff09\n     *\n     * @param idList \u4e3b\u952eID\u5217\u8868(\u4e0d\u80fd\u4e3a null \u4ee5\u53ca empty)\n     *\/\n    List&lt;T> selectBatchIds(@Param(Constants.COLLECTION) Collection&lt;? extends Serializable> idList);\n\n    \/**\n     * \u67e5\u8be2\uff08\u6839\u636e columnMap \u6761\u4ef6\uff09\n     *\n     * @param columnMap \u8868\u5b57\u6bb5 map \u5bf9\u8c61\n     *\/\n    List&lt;T> selectByMap(@Param(Constants.COLUMN_MAP) Map&lt;String, Object> columnMap);\n\n    \/**\n     * \u6839\u636e entity \u6761\u4ef6\uff0c\u67e5\u8be2\u4e00\u6761\u8bb0\u5f55\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    T selectOne(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u603b\u8bb0\u5f55\u6570\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    Integer selectCount(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e entity \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    List&lt;T> selectList(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    List&lt;Map&lt;String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\n     * &lt;p>\u6ce8\u610f\uff1a \u53ea\u8fd4\u56de\u7b2c\u4e00\u4e2a\u5b57\u6bb5\u7684\u503c&lt;\/p>\n     *\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    List&lt;Object> selectObjs(@Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e entity \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\uff08\u5e76\u7ffb\u9875\uff09\n     *\n     * @param page         \u5206\u9875\u67e5\u8be2\u6761\u4ef6\uff08\u53ef\u4ee5\u4e3a RowBounds.DEFAULT\uff09\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\uff08\u53ef\u4ee5\u4e3a null\uff09\n     *\/\n    &lt;E extends IPage&lt;T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n\n    \/**\n     * \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\uff08\u5e76\u7ffb\u9875\uff09\n     *\n     * @param page         \u5206\u9875\u67e5\u8be2\u6761\u4ef6\n     * @param queryWrapper \u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b\n     *\/\n    &lt;E extends IPage&lt;Map&lt;String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper&lt;T> queryWrapper);\n}<\/code><\/pre>\n\n\n\n<p>\u901a\u8fc7\u9605\u8bfb\u6e90\u7801\uff0c\u6211\u4eec\u53d1\u73b0\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86\u5f88\u591a\u7528\u4e8e\u64cd\u4f5c\u6570\u636e\u5e93\u5b9e\u73b0\u589e\u5220\u67e5\u6539\uff08CRUD\uff09\u529f\u80fd\u7684\u51fd\u6570\u3002\u5177\u4f53\u7684\u51fd\u6570\u4ee5\u53ca\u5b83\u7684\u529f\u80fd\u6e90\u7801\u4e2d\u5df2\u7ecf\u6709\u8bf4\u660e\u4e86\u3002<\/p>\n\n\n\n<h3>2.1\u6d4b\u8bd5Mapper\u7684\u589e\u5220\u67e5\u6539\u529f\u80fd<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.moyisuiying.booksystem;\n\nimport com.moyisuiying.booksystem.dao.AccountDao;\nimport com.moyisuiying.booksystem.entity.Account;\nimport org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\n\nimport java.util.Arrays;\nimport java.util.List;\n\n@SpringBootTest\nclass BooksystemApplicationTests {\n    @Autowired\n    AccountDao accountDao;\n    @Test\n    public  void testFindAll(){\n        List&lt;Account> accountList = accountDao.selectList(null);\n        accountList.forEach(System.out::println);\n    }\n    @Test\n   public void testFindById(){\n       Account account = accountDao.selectById(19);\n       System.out.println(account);\n   }\n   @Test\n    public void testInsert(){\n        Account account = new Account(28,\"\u5f20\u4e09\",\"bb\");\n       int fla = accountDao.insert(account);\n       System.out.println(fla);\n\n   }\n   @Test\n   public void testDeleteById(){\n       int deleted = accountDao.deleteById(21);\n       System.out.println(deleted);\n   }\n   @Test\n   public void testDeleteByIds(){\n       int deleteBatchIds = accountDao.deleteBatchIds(Arrays.asList(22, 23));\n       System.out.println(deleteBatchIds);\n   }\n   @Test\n    public void testUpdate(){\n        Account account = new Account();\n        account.setId(27);\n        account.setName(\"\u674e\u56db\");\n        account.setPassword(\"232335\");\n       int update = accountDao.updateById(account);\n       System.out.println(update);\n   }\n}<\/code><\/pre>\n\n\n\n<h2>3 .\u4f7f\u7528\u901a\u7528\u7684IService\u5b9e\u73b0crud\u529f\u80fd\u4ee5\u53ca\u4e86\u89e3\u5b83\u7684\u539f\u7406<\/h2>\n\n\n\n<h3>3.1\u9996\u5148\u770bmybatisplus\u63d0\u4f9b\u7684\u901a\u7528IService.java\u8fd9\u4e2a\u63a5\u53e3\u7c7b\u63d0\u4f9b\u7684\u65b9\u6cd5<\/h3>\n\n\n\n<h4>3.1.1Service CRUD \u63a5\u53e3<\/h4>\n\n\n\n<p>\u2460\u901a\u7528 Service CRUD \u5c01\u88c5<a href=\"https:\/\/gitee.com\/baomidou\/mybatis-plus\/blob\/3.0\/mybatis-plus-extension\/src\/main\/java\/com\/baomidou\/mybatisplus\/extension\/service\/IService.java\" target=\"_blank\"  rel=\"nofollow\" >IService<\/a>\u63a5\u53e3\uff0c\u8fdb\u4e00\u6b65\u5c01\u88c5 CRUD \u91c7\u7528 <code>get \u67e5\u8be2\u5355\u884c<\/code> <code>remove \u5220\u9664<\/code> <code>list \u67e5\u8be2\u96c6\u5408<\/code> <code>page \u5206\u9875<\/code> \u524d\u7f00\u547d\u540d\u65b9\u5f0f\u533a\u5206 <code>Mapper<\/code> \u5c42\u907f\u514d\u6df7\u6dc6\uff0c<\/p>\n\n\n\n<p>\u2461\u6cdb\u578b <code>T<\/code> \u4e3a\u4efb\u610f\u5b9e\u4f53\u5bf9\u8c61<\/p>\n\n\n\n<p>\u2462\u5efa\u8bae\u5982\u679c\u5b58\u5728\u81ea\u5b9a\u4e49\u901a\u7528 Service \u65b9\u6cd5\u7684\u53ef\u80fd\uff0c\u8bf7\u521b\u5efa\u81ea\u5df1\u7684 <code>IBaseService<\/code> \u7ee7\u627f <code>Mybatis-Plus<\/code> \u63d0\u4f9b\u7684\u57fa\u7c7b<\/p>\n\n\n\n<p>\u2463\u5bf9\u8c61 <code>Wrapper<\/code> \u4e3a <a href=\"https:\/\/baomidou.com\/guide\/wrapper.html\" target=\"_blank\"  rel=\"nofollow\" >\u6761\u4ef6\u6784\u9020\u5668<\/a><\/p>\n\n\n\n<p>\u2464IService \u7684\u9ed8\u8ba4\u5b9e\u73b0\u7c7b\u4e3aServiceImpl.java<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img   class=\"lazyload\" data-src=\"https:\/\/img-blog.csdnimg.cn\/20201205182411211.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"\/><\/figure >\n<noscript><img src=\"https:\/\/img-blog.csdnimg.cn\/20201205182411211.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"\/><\/figure><\/noscript>\n\n\n\n<p>\u4ece\u8fd9\u4e2a\u5b9e\u73b0\u7c7b\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0cServiceImpl.java\u4f7f\u7528\u4e86BaseMapper\u6216\u8005BaseMapper\u7684\u5b50\u7c7b\u7528\u4e8e\u5b9e\u73b0\u589e\u5220\u67e5\u6539\u7b49\u529f\u80fd\uff0c\u5b9e\u9645\u4e0a\u4e5f\u5c31\u662f\u5728BaseMapper\u529f\u80fd\u7684\u57fa\u7840\u4e0a\u5c01\u88c5\u4e86\u4e00\u4e9b\u65b9\u6cd5\u3002ServiceImpl\u529f\u80fd\u7684\u5b9e\u73b0\u8fd8\u662f\u8981\u4f9d\u8d56\u4e8eBaseMapper\u3002<\/p>\n\n\n\n<h4>3.1.2Save<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u63d2\u5165\u4e00\u6761\u8bb0\u5f55\uff08\u9009\u62e9\u5b57\u6bb5\uff0c\u7b56\u7565\u63d2\u5165\uff09\nboolean save(T entity);\n\/\/ \u63d2\u5165\uff08\u6279\u91cf\uff09\nboolean saveBatch(Collection&lt;T> entityList);\n\/\/ \u63d2\u5165\uff08\u6279\u91cf\uff09\nboolean saveBatch(Collection&lt;T> entityList, int batchSize);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>T<\/td><td>entity<\/td><td>\u5b9e\u4f53\u5bf9\u8c61<\/td><\/tr><tr><td>Collection<\/td><td>entityList<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u96c6\u5408<\/td><\/tr><tr><td>int<\/td><td>batchSize<\/td><td>\u63d2\u5165\u6279\u6b21\u6570\u91cf<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.4SaveOrUpdate<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ TableId \u6ce8\u89e3\u5b58\u5728\u66f4\u65b0\u8bb0\u5f55\uff0c\u5426\u63d2\u5165\u4e00\u6761\u8bb0\u5f55\nboolean saveOrUpdate(T entity);\n\/\/ \u6839\u636eupdateWrapper\u5c1d\u8bd5\u66f4\u65b0\uff0c\u5426\u7ee7\u7eed\u6267\u884csaveOrUpdate(T)\u65b9\u6cd5\nboolean saveOrUpdate(T entity, Wrapper&lt;T> updateWrapper);\n\/\/ \u6279\u91cf\u4fee\u6539\u63d2\u5165\nboolean saveOrUpdateBatch(Collection&lt;T> entityList);\n\/\/ \u6279\u91cf\u4fee\u6539\u63d2\u5165\nboolean saveOrUpdateBatch(Collection&lt;T> entityList, int batchSize);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>T<\/td><td>entity<\/td><td>\u5b9e\u4f53\u5bf9\u8c61<\/td><\/tr><tr><td>Wrapper<\/td><td>updateWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b UpdateWrapper<\/td><\/tr><tr><td>Collection<\/td><td>entityList<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u96c6\u5408<\/td><\/tr><tr><td>int<\/td><td>batchSize<\/td><td>\u63d2\u5165\u6279\u6b21\u6570\u91cf<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.5Remove<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u6839\u636e entity \u6761\u4ef6\uff0c\u5220\u9664\u8bb0\u5f55\nboolean remove(Wrapper&lt;T> queryWrapper);\n\/\/ \u6839\u636e ID \u5220\u9664\nboolean removeById(Serializable id);\n\/\/ \u6839\u636e columnMap \u6761\u4ef6\uff0c\u5220\u9664\u8bb0\u5f55\nboolean removeByMap(Map&lt;String, Object> columnMap);\n\/\/ \u5220\u9664\uff08\u6839\u636eID \u6279\u91cf\u5220\u9664\uff09\nboolean removeByIds(Collection&lt;? extends Serializable> idList);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>Wrapper<\/td><td>queryWrapper<\/td><td>\u5b9e\u4f53\u5305\u88c5\u7c7b QueryWrapper<\/td><\/tr><tr><td>Serializable<\/td><td>id<\/td><td>\u4e3b\u952eID<\/td><\/tr><tr><td>Map<\/td><td>columnMap<\/td><td>\u8868\u5b57\u6bb5 map \u5bf9\u8c61<\/td><\/tr><tr><td>Collection<\/td><td>idList<\/td><td>\u4e3b\u952eID\u5217\u8868<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.6Update<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u6839\u636e UpdateWrapper \u6761\u4ef6\uff0c\u66f4\u65b0\u8bb0\u5f55 \u9700\u8981\u8bbe\u7f6esqlset\nboolean update(Wrapper&lt;T> updateWrapper);\n\/\/ \u6839\u636e whereEntity \u6761\u4ef6\uff0c\u66f4\u65b0\u8bb0\u5f55\nboolean update(T entity, Wrapper&lt;T> updateWrapper);\n\/\/ \u6839\u636e ID \u9009\u62e9\u4fee\u6539\nboolean updateById(T entity);\n\/\/ \u6839\u636eID \u6279\u91cf\u66f4\u65b0\nboolean updateBatchById(Collection&lt;T> entityList);\n\/\/ \u6839\u636eID \u6279\u91cf\u66f4\u65b0\nboolean updateBatchById(Collection&lt;T> entityList, int batchSize);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>Wrapper<\/td><td>updateWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b UpdateWrapper<\/td><\/tr><tr><td>T<\/td><td>entity<\/td><td>\u5b9e\u4f53\u5bf9\u8c61<\/td><\/tr><tr><td>Collection<\/td><td>entityList<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u96c6\u5408<\/td><\/tr><tr><td>int<\/td><td>batchSize<\/td><td>\u66f4\u65b0\u6279\u6b21\u6570\u91cf<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.7Get<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u6839\u636e ID \u67e5\u8be2\nT getById(Serializable id);\n\/\/ \u6839\u636e Wrapper\uff0c\u67e5\u8be2\u4e00\u6761\u8bb0\u5f55\u3002\u7ed3\u679c\u96c6\uff0c\u5982\u679c\u662f\u591a\u4e2a\u4f1a\u629b\u51fa\u5f02\u5e38\uff0c\u968f\u673a\u53d6\u4e00\u6761\u52a0\u4e0a\u9650\u5236\u6761\u4ef6 wrapper.last(\"LIMIT 1\")\nT getOne(Wrapper&lt;T> queryWrapper);\n\/\/ \u6839\u636e Wrapper\uff0c\u67e5\u8be2\u4e00\u6761\u8bb0\u5f55\nT getOne(Wrapper&lt;T> queryWrapper, boolean throwEx);\n\/\/ \u6839\u636e Wrapper\uff0c\u67e5\u8be2\u4e00\u6761\u8bb0\u5f55\nMap&lt;String, Object> getMap(Wrapper&lt;T> queryWrapper);\n\/\/ \u6839\u636e Wrapper\uff0c\u67e5\u8be2\u4e00\u6761\u8bb0\u5f55\n&lt;V> V getObj(Wrapper&lt;T> queryWrapper, Function&lt;? super Object, V> mapper);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>Serializable<\/td><td>id<\/td><td>\u4e3b\u952eID<\/td><\/tr><tr><td>Wrapper<\/td><td>queryWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b QueryWrapper<\/td><\/tr><tr><td>boolean<\/td><td>throwEx<\/td><td>\u6709\u591a\u4e2a result \u662f\u5426\u629b\u51fa\u5f02\u5e38<\/td><\/tr><tr><td>T<\/td><td>entity<\/td><td>\u5b9e\u4f53\u5bf9\u8c61<\/td><\/tr><tr><td>Function<\/td><td>mapper<\/td><td>\u8f6c\u6362\u51fd\u6570<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.8List<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u67e5\u8be2\u6240\u6709\nList&lt;T> list();\n\/\/ \u67e5\u8be2\u5217\u8868\nList&lt;T> list(Wrapper&lt;T> queryWrapper);\n\/\/ \u67e5\u8be2\uff08\u6839\u636eID \u6279\u91cf\u67e5\u8be2\uff09\nCollection&lt;T> listByIds(Collection&lt;? extends Serializable> idList);\n\/\/ \u67e5\u8be2\uff08\u6839\u636e columnMap \u6761\u4ef6\uff09\nCollection&lt;T> listByMap(Map&lt;String, Object> columnMap);\n\/\/ \u67e5\u8be2\u6240\u6709\u5217\u8868\nList&lt;Map&lt;String, Object>> listMaps();\n\/\/ \u67e5\u8be2\u5217\u8868\nList&lt;Map&lt;String, Object>> listMaps(Wrapper&lt;T> queryWrapper);\n\/\/ \u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\nList&lt;Object> listObjs();\n\/\/ \u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\n&lt;V> List&lt;V> listObjs(Function&lt;? super Object, V> mapper);\n\/\/ \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\nList&lt;Object> listObjs(Wrapper&lt;T> queryWrapper);\n\/\/ \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u5168\u90e8\u8bb0\u5f55\n&lt;V> List&lt;V> listObjs(Wrapper&lt;T> queryWrapper, Function&lt;? super Object, V> mapper);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>Wrapper<\/td><td>queryWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b QueryWrapper<\/td><\/tr><tr><td>Collection<\/td><td>idList<\/td><td>\u4e3b\u952eID\u5217\u8868<\/td><\/tr><tr><td>Map<\/td><td>columnMap<\/td><td>\u8868\u5b57\u6bb5 map \u5bf9\u8c61<\/td><\/tr><tr><td>Function<\/td><td>mapper<\/td><td>\u8f6c\u6362\u51fd\u6570<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.9Page<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u65e0\u6761\u4ef6\u5206\u9875\u67e5\u8be2\nIPage&lt;T> page(IPage&lt;T> page);\n\/\/ \u6761\u4ef6\u5206\u9875\u67e5\u8be2\nIPage&lt;T> page(IPage&lt;T> page, Wrapper&lt;T> queryWrapper);\n\/\/ \u65e0\u6761\u4ef6\u5206\u9875\u67e5\u8be2\nIPage&lt;Map&lt;String, Object>> pageMaps(IPage&lt;T> page);\n\/\/ \u6761\u4ef6\u5206\u9875\u67e5\u8be2\nIPage&lt;Map&lt;String, Object>> pageMaps(IPage&lt;T> page, Wrapper&lt;T> queryWrapper);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>IPage<\/td><td>page<\/td><td>\u7ffb\u9875\u5bf9\u8c61<\/td><\/tr><tr><td>Wrapper<\/td><td>queryWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b QueryWrapper<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.10Count<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u67e5\u8be2\u603b\u8bb0\u5f55\u6570\nint count();\n\/\/ \u6839\u636e Wrapper \u6761\u4ef6\uff0c\u67e5\u8be2\u603b\u8bb0\u5f55\u6570\nint count(Wrapper&lt;T> queryWrapper);<\/code><\/pre>\n\n\n\n<h5>\u53c2\u6570\u8bf4\u660e<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7c7b\u578b<\/th><th>\u53c2\u6570\u540d<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>Wrapper<\/td><td>queryWrapper<\/td><td>\u5b9e\u4f53\u5bf9\u8c61\u5c01\u88c5\u64cd\u4f5c\u7c7b QueryWrapper<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>3.1.11Chain<\/h4>\n\n\n\n<h4>query<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u94fe\u5f0f\u67e5\u8be2 \u666e\u901a\nQueryChainWrapper&lt;T> query();\n\/\/ \u94fe\u5f0f\u67e5\u8be2 lambda \u5f0f\u3002\u6ce8\u610f\uff1a\u4e0d\u652f\u6301 Kotlin\nLambdaQueryChainWrapper&lt;T> lambdaQuery(); \n\n\/\/ \u793a\u4f8b\uff1a\nquery().eq(\"column\", value).one();\nlambdaQuery().eq(Entity::getId, value).list();<\/code><\/pre>\n\n\n\n<h4>update<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u94fe\u5f0f\u66f4\u6539 \u666e\u901a\nUpdateChainWrapper&lt;T> update();\n\/\/ \u94fe\u5f0f\u66f4\u6539 lambda \u5f0f\u3002\u6ce8\u610f\uff1a\u4e0d\u652f\u6301 Kotlin \nLambdaUpdateChainWrapper&lt;T> lambdaUpdate();\n\n\/\/ \u793a\u4f8b\uff1a\nupdate().eq(\"column\", value).remove();\nlambdaUpdate().eq(Entity::getId, value).update(entity);<\/code><\/pre>\n\n\n\n<h3>3.2\u81ea\u5b9a\u4e49\u4e00\u4e2a\u7ee7\u627f\u4e8eIService.java\u63a5\u53e3\u7684AccountService.java\u63a5\u53e3\uff0c\u7136\u540e\u5b9e\u73b0\u5b83<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>public interface AccountService extends IService&lt;Account> {\n    \/**\n     * @Description :\u81ea\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u7528\u4e8e\u5b9e\u73b0\u7528\u6237Account\u767b\u5f55\u903b\u8f91\u5b9e\u73b0\n     * @Date 12:14 2020\/11\/25 0025\n     * @Param * @param name  \u7528\u6237\u540d\n     * @param password \uff1a\u5bc6\u7801\n     * @return com.moyisuiying.booksystem.entity.Account\n     **\/\n    public Account login(String name, String password);\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>@Service(\"accountService\")\npublic class AccountServiceImpl  extends ServiceImpl&lt;BaseMapper&lt;Account>, Account> implements AccountService{\n     @Override\n    public Account login(String name, String password) {\n        \/\/\u5b9e\u4f8b\u5316\u67e5\u8be2\u6761\u4ef6\u5bf9\u8c61\n        QueryWrapper&lt;Account> queryWrapper = new QueryWrapper&lt;>();\n        \/\/\u8bbe\u7f6e\u67e5\u8be2\u6761\u4ef6\n        queryWrapper.eq(\"name\",name).eq(\"password\", password);\n        Account loginUser = this.getOne(queryWrapper);\n        return  loginUser;\n    }\n}<\/code><\/pre>\n\n\n\n<h3>3.3\u5f00\u59cb\u6d4b\u8bd5<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.moyisuiying.booksystem;\n\nimport com.moyisuiying.booksystem.entity.Account;\nimport com.moyisuiying.booksystem.service.AccountService;\nimport org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\n\nimport java.util.Arrays;\nimport java.util.List;\n\n\/**\n * Classname:AccountServiceTest\n *\n * @description:\n * @author: \u964c\u610f\u968f\u5f71\n * @Date: 2020-11-25 11:40\n * @Version: 1.0\n **\/\n@SpringBootTest\npublic class AccountServiceTest {\n    @Autowired\n    AccountService accountService;\n    @Test\n    public void testSave(){\n        Account account = new Account(1,\"\u964c\u610f\u968f\u5f71\",\"1234\");\n        boolean save = accountService.save(account);\n        System.out.println(save);\n    }\n    @Test\n    public void testUpdate(){\n        Account newAccount = new Account();\n        newAccount.setPassword(\"\u964c\u610f\u968f\u5f71\");\n        newAccount.setPassword(\"root\");\n        newAccount.setId(1);\n        boolean updateById = accountService.updateById(newAccount);\n        System.out.println(updateById);\n    }\n    @Test\n    public void testRemoveById(){\n        boolean b = accountService.removeById(25);\n        System.out.println(b);\n    }\n    @Test\n    public void testRemoveByIds(){\n        boolean b = accountService.removeByIds(Arrays.asList(19,28));\n        System.out.println(b);\n    }\n    @Test\n    public void testGetOneById(){\n        Account byId = accountService.getById(1);\n        System.out.println(byId);\n    }\n    @Test\n    public void testGetAll(){\n        List&lt;Account> accountList = accountService.getBaseMapper().selectList(null);\n        accountList.forEach(System.out::println);\n    }\n}<\/code><\/pre>\n\n\n\n<p>\u7531\u4e8eAccountService\u4e2d\u7684\u65b9\u6cd5\u9664\u4e86\u81ea\u5b9a\u4e49\u7684\u65b9\u6cd5\u5916\u548cIService\u4e2d\u7684\u65b9\u6cd5\u4e00\u6837\uff0c\u6240\u4ee5\u6211\u4eec\u4e0d\u7528\u5199\u57fa\u672c\u7684crud\u4ee3\u7801\u5b9e\u73b0mybatisplus\u5df2\u7ecf \u5e2e\u6211\u4eec\u5b9e\u73b0\u4e86\u3002\u5e76\u4e14\u5728AccountService\u4e2d\u6211\u4eec\u8fd8\u53ef\u4ee5\u5b9e\u73b0\u66f4\u52a0\u5f3a\u5927\u7684\u66f4\u65b0\u548c\u67e5\u627e\u529f\u80fd\u3002<\/p>\n\n\n\n<h3>4.\u6d4b\u8bd5\u7684\u6e90\u4ee3\u7801\u5df2\u4e0a\u4f20\u5230GitHub\u4e2d\uff1a<a href=\"https:\/\/github.com\/LJF2402901363\/java_study.git\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/github.com\/LJF2402901363\/java_study.git<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img   class=\"lazyload\" data-src=\"https:\/\/img-blog.csdnimg.cn\/20201205181629733.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"\/><\/figure >\n<noscript><img src=\"https:\/\/img-blog.csdnimg.cn\/20201205181629733.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"\/><\/figure><\/noscript>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mybatis-plus\u5b66\u4e60\uff08\u4e8c\uff09\u2014\u2014MybatiPlus\u7684BaseMapper\u548cIService\u8be6\u89e3\u4ee5\u53ca\u81ea\u5b9a\u4e49\u5b9e\u73b0 2.\u4f7f\u7528Ba &#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[150,151,149,148],"_links":{"self":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/399"}],"collection":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/comments?post=399"}],"version-history":[{"count":4,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/399\/revisions"}],"predecessor-version":[{"id":404,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/399\/revisions\/404"}],"wp:attachment":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/media?parent=399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/categories?post=399"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/tags?post=399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}