springboot 使用 mybatis + mapper
首先引入相关pom
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.16</version> </dependency>
新建MyMapper类
package com.chao.notify.mapper.base; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> { }
新建UUIdGenId 用于uuid主键
public class UUIdGenId implements GenId<String> { @Override public String genId(String s, String s1) { return UUID.randomUUID().toString().replace("-",""); } }
新建model类
@Table(name = "t_user") public class TUser { @Id @KeySql(genId = UUIdGenId.class) private String id; @Column(unique = true) private String username; private String password; private String salt; private String name; /** * 0 未知 * 1 男 * 2 女 */ private Integer sex; private String phone; private String address; private String notes; /** * 停用状态 * true 停用 * false 启用 */ private Boolean disabled; /** * 用户角色 * admin 管理员 * public 普通用户 */ private String role; /** * 创建时间 */ private Date at; /** * 登录时间 */ private Date loginAt; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSalt() { return salt; } public void setSalt(String salt) { this.salt = salt; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getNotes() { return notes; } public void setNotes(String notes) { this.notes = notes; } public Boolean getDisabled() { return disabled; } public void setDisabled(Boolean disabled) { this.disabled = disabled; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public Date getAt() { return at; } public void setAt(Date at) { this.at = at; } public Date getLoginAt() { return loginAt; } public void setLoginAt(Date loginAt) { this.loginAt = loginAt; } }
新建UserMapper类
@Mapper public interface UserMapper extends MyMapper<TUser> { }
application.properties配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #初始化链接数 最小空闲链接数 最大链接数 spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 #获取连接的超时时间 单位毫秒 spring.datasource.druid.max-wait=60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.druid.time-between-eviction-runs-millis=60000 mybatis.type-aliases-package=com.chao.notify.model mapper.mappers=com.chao.notify.mapper.base.MyMapper