一、源码解析:
/**
* Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能
* 这个 Mapper 支持 id 泛型 */
public interface BaseMapper {
/**
* 插入一条记录
* @param entity
* 实体对象
* @return int
*/
Integer insert(T entity);
/**
* 根据 ID 删除
* @param id
* 主键ID
* @return int
*/
Integer deleteById(Serializable id);
/**
* 根据 columnMap 条件,删除记录
* @param columnMap
* 表字段 map 对象
* @return int
*/
Integer deleteByMap(@Param( "cm") Map columnMap);
/**
* 根据 entity 条件,删除记录
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return int
*/
Integer delete(@Param( "ew") Wrapper wrapper);
/**
* 删除(根据ID 批量删除)
* @param idList
* 主键ID列表
* @return int
*/
Integer deleteBatchIds(List <? extends Serializable> idList);
/**
* 根据 ID 修改
* @param entity
* 实体对象
* @return int
*/
Integer updateById(T entity);
/**
* 根据 whereEntity 条件,更新记录
* @param entity
* 实体对象
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return
*/
Integer update(@Param( "et") T entity, @Param("ew") Wrapper wrapper);
/**
* 根据 ID 查询
* @param id
* 主键ID
* @return T
*/
T selectById(Serializable id);
/**
* 查询(根据ID 批量查询)
* @param idList
* 主键ID列表
* @return List
*/
List selectBatchIds(List<? extends Serializable> idList);
/**
* 查询(根据 columnMap 条件)
* @param columnMap
* 表字段 map 对象
* @return List
*/
List selectByMap(@Param("cm") Map columnMap);
/**
* 根据 entity 条件,查询一条记录
* @param entity
* 实体对象
* @return T
*/
T selectOne(@Param( "ew") T entity);
/**
* 根据 Wrapper 条件,查询总记录数
* @param wrapper
* 实体对象
* @return int
*/
Integer selectCount(@Param( "ew") Wrapper wrapper);
/**
* 根据 entity 条件,查询全部记录
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return List
*/
List selectList(@Param("ew") Wrapper wrapper);
/**
* 根据 Wrapper 条件,查询全部记录
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return List
*/
List > selectMaps(@Param("ew") Wrapper wrapper);
/**
* 根据 Wrapper 条件,查询全部记录
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return List
*/
List selectObjs(@Param("ew") Wrapper wrapper);
/**
* 用法:(new RowBounds(offset, limit), ew);
* 根据 entity 条件,查询全部记录(并翻页)
* @param rowBounds
* 分页查询条件(可以为 RowBounds.DEFAULT)
* @param wrapper
* 实体对象封装操作类(可以为 null)
* @return List
*/
List selectPage(RowBounds rowBounds, @Param("ew") Wrapper wrapper);
/** -- 不常用,
* 根据 Wrapper 条件,查询全部记录(并翻页)
* @param rowBounds
* 分页查询条件(可以为 RowBounds.DEFAULT)
* @param wrapper
* 实体对象封装操作类
* @return List>
*/
List > selectMapsPage(RowBounds rowBounds, @Param("ew") Wrapper wrapper);
}
二、方法应用:
1 public class TestMapper {
2
3 @Resource
4 private UserMapper userMapper;
5
6 /**
7 * 获取所有用户
8 */
9 @Test
10 public void selectList(){
11 List userList = userMapper.selectList(null );
12 userList.forEach(System.out::println);
13 }
14
15 /**
16 * 根据指定条件 查询符合条件的用户 (selectList传参数的查询形式)
17 */
18 @Test
19 public void selectAllList(){
20 QueryWrapper queryWrapper = new QueryWrapper<>();
21 queryWrapper.ge("age",23);
22 List userList = userMapper.selectList(queryWrapper);
23 userList.forEach(System.out::println);
24 }
25
26 /**
27 * 根据 id 查询指定用户
28 */
29 @Test
30 public void selectById(){
31 User user = userMapper.selectById(1);
32 System.out.println(user);
33 }
34
35 /**
36 * 根据 ID 批量查询用户
37 */
38 @Test
39 public void selectBatchIds(){
40 List integers = Arrays.asList(1,2,3);
41 List userList = userMapper.selectBatchIds(integers);
42 userList.forEach(System.out::println);
43 }
44
45 /**
46 * 根据 Map搜索条件查询指定条件下的用户
47 */
48 @Test
49 public void selectByMap(){
50 Map map = new HashMap<>();
51 map.put("name","Tom");
52 List userList = userMapper.selectByMap(map);
53 userList.forEach(System.out::println);
54 }
55
56 /**
57 * wrapper 查询一条数据
58 */
59 @Test
60 public void selectOne(){
61 QueryWrapper queryWrapper = new QueryWrapper<>();
62 queryWrapper.eq("name","Tom");
63 User user = userMapper.selectOne(queryWrapper);
64 System.out.println(user);
65 }
66
67 /**
68 * 根据指定条件查询符合条件的记录数
69 */
70 @Test
71 public void selectCount(){
72 QueryWrapper queryWrapper = new QueryWrapper<>();
73 queryWrapper.gt("age",20);
74 Integer count = userMapper.selectCount(queryWrapper);
75 System.out.println(count);
76 }
77
78
79
80 /**
81 * 根据指定条件查询用户
82 */
83 @Test
84 public void selectMaps(){
85 QueryWrapper queryWrapper = new QueryWrapper<>();
86 queryWrapper.ge("age",23);
87 List> mapList = userMapper.selectMaps(queryWrapper);
88 mapList.forEach(System.out::println);
89 }
90
91 /**
92 * 根据指定条件查询符合条件的用户 (只返回第一个字段值)
93 */
94 @Test
95 public void selectObjs(){
96 QueryWrapper queryWrapper = new QueryWrapper<>();
97 queryWrapper.ge("age",23);
98 List list = userMapper.selectObjs(queryWrapper);
99 list.forEach(System.out::println);
100 }
101
102 /**
103 * 查询所有用户并分页
104 */
105 @Test
106 public void selectPage(){
107 Page page = new Page<>(1,2);
108 IPage userIPage = userMapper.selectPage(page, null );
109 System.out.println("总记录数:"+userIPage.getTotal());
110 System.out.println("总页数:"+userIPage.getPages());
111 List userList = userIPage.getRecords();
112 userList.forEach(System.out::println);
113 }
114
115 /**
116 * 查询所有用户并分页
117 */
118 @Test
119 public void selectMapsPage(){
120 Page page = new Page<>(1,2);
121 IPage> mapIPage = userMapper.selectMapsPage(page, null );
122 System.out.println("总记录数:"+mapIPage.getTotal());
123 System.out.println("总页数:"+mapIPage.getPages());
124 List> records = mapIPage.getRecords();
125 records.forEach(System.out::println);
126 }
127
128 /**
129 * 插入一条记录
130 */
131 @Test
132 public void insert(){
133 User user = new User();
134 user.setUsername("zhangsan");
135 user.setEmail("777@qq.com");
136 user.setAge(33);
137 int i = userMapper.insert(user);
138 System.out.println(i);
139 }
140
141 /**
142 * 根据ID删除一条记录
143 */
144 @Test
145 public void deleteById(){
146 int i = userMapper.deleteById(8);
147 System.out.println(i);
148 }
149
150 /**
151 * 根据指定 Map 条件删除记录
152 */
153 @Test
154 public void deleteByMap(){
155 Map map = new HashMap<>();
156 map.put("age",23);
157 int i = userMapper.deleteByMap(map);
158 System.out.println(i);
159 }
160
161 /**
162 * 根据指定 Wrapper 条件删除记录
163 */
164 @Test
165 public void delete(){
166 QueryWrapper queryWrapper = new QueryWrapper<>();
167 queryWrapper.likeRight("name","B");
168 int i = userMapper.delete(queryWrapper);
169 System.out.println(i);
170 }
171
172 /**
173 * 根据指定ID批量删除记录
174 */
175 @Test
176 public void deleteBatchIds(){
177 List integers = Arrays.asList(1, 2);
178 int i = userMapper.deleteBatchIds(integers);
179 System.out.println(i);
180 }
181
182 /**
183 * 根据指定条件更新记录
184 */
185 @Test
186 public void update(){
187 User user = new User();
188 user.setEmail("888@qq.com");
189 UpdateWrapper updateWrapper = new UpdateWrapper<>();
190 updateWrapper.eq("name","Jack");
191 int update = userMapper.update(user, updateWrapper);
192 System.out.println(update);
193 }
194
195 /**
196 * 根据 指定ID 更新记录
197 */
198 @Test
199 public void updateById(){
200 User user = new User();
201 user.setId(1L);
202 user.setEmail("666@qq.com");
203 int i = userMapper.updateById(user);
204 System.out.println(i);
205 }
publicclassTestMapper{ @Autowiredprivate UserMapper userMapper; /** * 获取所有用户 */ @TestpublicvoidselectList(){ List userList=userMapper.selectList(null); userList.forEach(System.out::println);} /** * 根据指定条件 查询符合条件的用户 (selectList传参数的查询形式) */ @TestpublicvoidselectAllList(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.ge("age",23); List userList=userMapper.selectList(queryWrapper); userList.forEach(System.out::println);} /** *根据 id 查询指定用户 */ @TestpublicvoidselectById(){ User user=userMapper.selectById(1); System.out.println(user);} /** * 根据 ID 批量查询用户 */ @TestpublicvoidselectBatchIds(){ List integers=Arrays.asList(1,2,3); List userList=userMapper.selectBatchIds(integers); userList.forEach(System.out::println);} /** * 根据 Map搜索条件查询指定条件下的用户 */ @TestpublicvoidselectByMap(){ Map map=newHashMap<>(); map.put("name","Tom"); List userList=userMapper.selectByMap(map); userList.forEach(System.out::println);} /** * wrapper 查询一条数据 */ @TestpublicvoidselectOne(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.eq("name","Tom"); User user=userMapper.selectOne(queryWrapper); System.out.println(user);} /** * 根据指定条件查询符合条件的记录数 */ @TestpublicvoidselectCount(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.gt("age",20); Integer count=userMapper.selectCount(queryWrapper); System.out.println(count);} /** * 根据指定条件查询用户 */ @TestpublicvoidselectMaps(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.ge("age",23); List>mapList=userMapper.selectMaps(queryWrapper); mapList.forEach(System.out::println);} /** * 根据指定条件查询符合条件的用户 (只返回第一个字段值) */ @TestpublicvoidselectObjs(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.ge("age",23); List list=userMapper.selectObjs(queryWrapper); list.forEach(System.out::println);} /** * 查询所有用户并分页 */ @TestpublicvoidselectPage(){ Page page=newPage<>(1,2); IPage userIPage=userMapper.selectPage(page,null); System.out.println("总记录数:"+userIPage.getTotal()); System.out.println("总页数:"+userIPage.getPages()); List userList=userIPage.getRecords(); userList.forEach(System.out::println);} /** * 查询所有用户并分页 */ @TestpublicvoidselectMapsPage(){ Page page=newPage<>(1,2); IPage>mapIPage=userMapper.selectMapsPage(page,null); System.out.println("总记录数:"+mapIPage.getTotal()); System.out.println("总页数:"+mapIPage.getPages()); List>records=mapIPage.getRecords(); records.forEach(System.out::println);} /** * 插入一条记录 */ @Testpublicvoidinsert(){ User user=newUser(); user.setUsername("zhangsan"); user.setEmail("777@qq.com"); user.setAge(33);int i=userMapper.insert(user); System.out.println(i);} /** * 根据ID删除一条记录 */ @TestpublicvoiddeleteById(){ int i=userMapper.deleteById(8); System.out.println(i); } /** * 根据指定 Map 条件删除记录 */ @TestpublicvoiddeleteByMap(){ Map map=newHashMap<>(); map.put("age",23);int i=userMapper.deleteByMap(map); System.out.println(i); } /** * 根据指定 Wrapper 条件删除记录 */ @Testpublicvoiddelete(){ QueryWrapper queryWrapper=newQueryWrapper<>(); queryWrapper.likeRight("name","B");int i=userMapper.delete(queryWrapper); System.out.println(i);} /** * 根据指定ID批量删除记录 */ @TestpublicvoiddeleteBatchIds(){ List integers=Arrays.asList(1,2); int i=userMapper.deleteBatchIds(integers); System.out.println(i);} /** * 根据指定条件更新记录 */ @Testpublicvoidupdate(){ User user=newUser(); user.setEmail("888@qq.com"); UpdateWrapper updateWrapper=newUpdateWrapper<>(); updateWrapper.eq("name","Jack");int update=userMapper.update(user,updateWrapper); System.out.println(update);} /** * 根据 指定ID 更新记录 */ @TestpublicvoidupdateById(){ User user=newUser(); user.setId(1L); user.setEmail("666@qq.com");int i=userMapper.updateById(user); System.out.println(i);} }
(以上是对网上查阅的资料进行了总结,不保证一定正确,见谅……)