1、如何使用BaseMapper進行數據庫的操作。
2、使用BaseMapper進行插入實體時如何讓UUID的主鍵自動生成。
Student實體類,其中id屬性主鍵為UUID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
package com.huixiaoer.ant.api.model.bean; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; public class Student { /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.id * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ @TableId (type= IdType.UUID) private String id; /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.user_name * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ private String userName; /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.age * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ private Integer age; /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.phone * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ private String phone; /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public Student(String id, String userName, Integer age, String phone) { this .id = id; this .userName = userName; this .age = age; this .phone = phone; } /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public Student() { super (); } /** * This method was generated by MyBatis Generator. * This method returns the value of the database column student.id * * @return the value of student.id * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public String getId() { return id; } /** * This method was generated by MyBatis Generator. * This method sets the value of the database column student.id * * @param id the value for student.id * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public void setId(String id) { this .id = id == null ? null : id.trim(); } /** * This method was generated by MyBatis Generator. * This method returns the value of the database column student.user_name * * @return the value of student.user_name * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public String getUserName() { return userName; } /** * This method was generated by MyBatis Generator. * This method sets the value of the database column student.user_name * * @param userName the value for student.user_name * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public void setUserName(String userName) { this .userName = userName == null ? null : userName.trim(); } /** * This method was generated by MyBatis Generator. * This method returns the value of the database column student.age * * @return the value of student.age * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public Integer getAge() { return age; } /** * This method was generated by MyBatis Generator. * This method sets the value of the database column student.age * * @param age the value for student.age * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public void setAge(Integer age) { this .age = age; } /** * This method was generated by MyBatis Generator. * This method returns the value of the database column student.phone * * @return the value of student.phone * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public String getPhone() { return phone; } /** * This method was generated by MyBatis Generator. * This method sets the value of the database column student.phone * * @param phone the value for student.phone * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ public void setPhone(String phone) { this .phone = phone == null ? null : phone.trim(); } } |
StudnetVI實體類,用戶從頁面接收參數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package com.huixiaoer.ant.api.model.vi; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @ApiModel (value = "student對象" ,description = "學生對象student" ) public class StudentVI { /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.user_name * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ @ApiModelProperty (value= "學生姓名" ,name= "userName" ,required= true ) private String userName; /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.age * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ @ApiModelProperty (value= "年齡" ,name= "age" ,required= true ) private Integer age; /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column student.phone * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ @ApiModelProperty (value= "手機號" ,name= "phone" ,required= true ) private String phone; public String getUserName() { return userName; } public void setUserName(String userName) { this .userName = userName; } public Integer getAge() { return age; } public void setAge(Integer age) { this .age = age; } public String getPhone() { return phone; } public void setPhone(String phone) { this .phone = phone; } } |
StudentPlusMapper接口類,實現BaseMapper用來實現Mybatis-Plus的增強功能。
1
2
3
4
5
6
7
8
|
package com.huixiaoer.ant.api.repository.mysql.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.huixiaoer.ant.api.model.bean.Student; public interface StudentPlusMapper extends BaseMapper<Student> { //不需要實現,這時候就可以調用baseMapper的增刪改查了 } |
StudentService業務接口類
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package com.huixiaoer.ant.api.service; import com.huixiaoer.ant.api.model.bean.Student; import com.huixiaoer.ant.api.model.bean.StudentExample; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.SelectKey; import java.util.List; public interface StudentService { /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ long countByExample(StudentExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ int deleteByExample(StudentExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ @Insert ({ "insert into student (id, user_name, " , "age, phone)" , "values (#{id,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, " , "#{age,jdbcType=INTEGER}, #{phone,jdbcType=VARCHAR})" }) @SelectKey (statement= "select uuid_short()" , keyProperty= "id" , before= true , resultType=String. class ) int insert(Student record); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ int insertSelective(Student record); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ List<Student> selectByExample(StudentExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ int updateByExampleSelective( @Param ( "record" ) Student record, @Param ( "example" ) StudentExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table student * * @mbg.generated Thu Oct 31 14:09:39 CST 2019 */ int updateByExample( @Param ( "record" ) Student record, @Param ( "example" ) StudentExample example); } |
StudentServiceImpl業務接口實現類,這里將mybatis-plus的mapper接口注入其中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package com.huixiaoer.ant.api.service.impl; import com.huixiaoer.ant.api.model.bean.Student; import com.huixiaoer.ant.api.model.bean.StudentExample; import com.huixiaoer.ant.api.repository.mysql.mapper.StudentMapper; import com.huixiaoer.ant.api.repository.mysql.mapper.StudentPlusMapper; import com.huixiaoer.ant.api.service.StudentService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service @Slf4j public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Autowired private StudentPlusMapper studentPlusMapper; @Override public long countByExample(StudentExample example) { return 0 ; } @Override public int deleteByExample(StudentExample example) { return 0 ; } @Override public int insert(Student record) { return studentPlusMapper.insert(record); } @Override public int insertSelective(Student record) { return studentMapper.insertSelective(record); } @Override public List<Student> selectByExample(StudentExample example) { return null ; } @Override public int updateByExampleSelective(Student record, StudentExample example) { return 0 ; } @Override public int updateByExample(Student record, StudentExample example) { return 0 ; } } |
SchoolController類,實現前端和后臺的交互。自動注入學生業務實現類。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package com.huixiaoer.ant.api.controller; import com.huixiaoer.ant.api.common.constant.ResultCode; import com.huixiaoer.ant.api.model.bean.Student; import com.huixiaoer.ant.api.model.vi.StudentVI; import com.huixiaoer.ant.api.service.impl.StudentServiceImpl; import com.huixiaoer.ant.api.util.*; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.UUID; /** * @author create by yiqiang.wu * @create 2019/06/12 * @email [email protected] * @description 登錄 */ @Slf4j @RestController @Api (tags = "學校 相關接口" ) public class SchoolController { @Autowired private StudentServiceImpl studentService; @Autowired private HttpServletRequest request; @ApiOperation (value = "增加學生信息" ) @PostMapping (value = "/insert/student" ) public CommonResult insertStudent( @RequestBody @ApiParam (name= "學生對象" ,value= "傳入json格式" ,required= true ) StudentVI studentVI) { try { Student student = new Student(); // student.setId(UUID.randomUUID().toString()); student.setUserName(studentVI.getUserName()); student.setAge(studentVI.getAge()); student.setPhone(studentVI.getPhone()); studentService.insert(student); } catch (Exception e) { System.out.println(e); return CommonUtil.buildResponse(ResultCode.SYSTEM_ERROR, ResultCode.SYSTEM_ERROR_MSG); } return CommonUtil.buildResponse(ResultCode.SUCCESS, ResultCode.SUCCESS_MSG); } } |
補充一下Mybatis的xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
<? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> < mapper namespace = "com.huixiaoer.ant.api.repository.mysql.mapper.StudentMapper" > < resultMap id = "BaseResultMap" type = "com.huixiaoer.ant.api.model.bean.Student" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> < constructor > < arg column = "id" javaType = "java.lang.String" jdbcType = "VARCHAR" /> < arg column = "user_name" javaType = "java.lang.String" jdbcType = "VARCHAR" /> < arg column = "age" javaType = "java.lang.Integer" jdbcType = "INTEGER" /> < arg column = "phone" javaType = "java.lang.String" jdbcType = "VARCHAR" /> </ constructor > </ resultMap > < sql id = "Example_Where_Clause" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> < where > < foreach collection = "oredCriteria" item = "criteria" separator = "or" > < if test = "criteria.valid" > < trim prefix = "(" prefixOverrides = "and" suffix = ")" > < foreach collection = "criteria.criteria" item = "criterion" > < choose > < when test = "criterion.noValue" > and ${criterion.condition} </ when > < when test = "criterion.singleValue" > and ${criterion.condition} #{criterion.value} </ when > < when test = "criterion.betweenValue" > and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </ when > < when test = "criterion.listValue" > and ${criterion.condition} < foreach close = ")" collection = "criterion.value" item = "listItem" open = "(" separator = "," > #{listItem} </ foreach > </ when > </ choose > </ foreach > </ trim > </ if > </ foreach > </ where > </ sql > < sql id = "Update_By_Example_Where_Clause" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> < where > < foreach collection = "example.oredCriteria" item = "criteria" separator = "or" > < if test = "criteria.valid" > < trim prefix = "(" prefixOverrides = "and" suffix = ")" > < foreach collection = "criteria.criteria" item = "criterion" > < choose > < when test = "criterion.noValue" > and ${criterion.condition} </ when > < when test = "criterion.singleValue" > and ${criterion.condition} #{criterion.value} </ when > < when test = "criterion.betweenValue" > and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </ when > < when test = "criterion.listValue" > and ${criterion.condition} < foreach close = ")" collection = "criterion.value" item = "listItem" open = "(" separator = "," > #{listItem} </ foreach > </ when > </ choose > </ foreach > </ trim > </ if > </ foreach > </ where > </ sql > < sql id = "Base_Column_List" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> id, user_name, age, phone </ sql > < select id = "selectByExample" parameterType = "com.huixiaoer.ant.api.model.bean.StudentExample" resultMap = "BaseResultMap" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> select < if test = "distinct" > distinct </ if > < include refid = "Base_Column_List" /> from student < if test = "_parameter != null" > < include refid = "Example_Where_Clause" /> </ if > < if test = "orderByClause != null" > order by ${orderByClause} </ if > </ select > < delete id = "deleteByExample" parameterType = "com.huixiaoer.ant.api.model.bean.StudentExample" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> delete from student < if test = "_parameter != null" > < include refid = "Example_Where_Clause" /> </ if > </ delete > < insert id = "insertSelective" parameterType = "com.huixiaoer.ant.api.model.bean.Student" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> < selectKey keyProperty = "id" order = "BEFORE" resultType = "java.lang.String" > select uuid_short() </ selectKey > insert into student < trim prefix = "(" suffix = ")" suffixOverrides = "," > id, < if test = "userName != null" > user_name, </ if > < if test = "age != null" > age, </ if > < if test = "phone != null" > phone, </ if > </ trim > < trim prefix = "values (" suffix = ")" suffixOverrides = "," > #{id,jdbcType=VARCHAR}, < if test = "userName != null" > #{userName,jdbcType=VARCHAR}, </ if > < if test = "age != null" > #{age,jdbcType=INTEGER}, </ if > < if test = "phone != null" > #{phone,jdbcType=VARCHAR}, </ if > </ trim > </ insert > < select id = "countByExample" parameterType = "com.huixiaoer.ant.api.model.bean.StudentExample" resultType = "java.lang.Long" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> select count(*) from student < if test = "_parameter != null" > < include refid = "Example_Where_Clause" /> </ if > </ select > < update id = "updateByExampleSelective" parameterType = "map" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> update student < set > < if test = "record.id != null" > id = #{record.id,jdbcType=VARCHAR}, </ if > < if test = "record.userName != null" > user_name = #{record.userName,jdbcType=VARCHAR}, </ if > < if test = "record.age != null" > age = #{record.age,jdbcType=INTEGER}, </ if > < if test = "record.phone != null" > phone = #{record.phone,jdbcType=VARCHAR}, </ if > </ set > < if test = "_parameter != null" > < include refid = "Update_By_Example_Where_Clause" /> </ if > </ update > < update id = "updateByExample" parameterType = "map" > <!-- WARNING - @mbg.generated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Oct 31 14:09:39 CST 2019. --> update student set id = #{record.id,jdbcType=VARCHAR}, user_name = #{record.userName,jdbcType=VARCHAR}, age = #{record.age,jdbcType=INTEGER}, phone = #{record.phone,jdbcType=VARCHAR} < if test = "_parameter != null" > < include refid = "Update_By_Example_Where_Clause" /> </ if > </ update > </ mapper > |
各種UUID生成策略,生成的UUID值進行比較。
到此這篇關于Mybatis-Plus BaseMapper的用法詳解的文章就介紹到這了,更多相關Mybatis-Plus BaseMapper內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/it-deepinmind/p/11772955.html