目录
1.2 yml 配置文件 -> druid配置后报错 搞不定
2.3 service -> 指定数据源 -> 用Mapper 接口 -> 操作数据库
2.4 controller -> 用户使用接口 -> 用service 方法
0 课程视频
1 配置
1.1 加依赖
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 苞米豆 多数据源 读写分离-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.4</version>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10 </version>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
1.2 yml 配置文件 -> druid配置后报错 搞不定
server:
port: 8090
spring:
datasource:
dynamic:
primary: master
datasource:
master:
#type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://狗东西把老子数据库给删了 草泥马 真几把闲的蛋疼:3306/test001?useSSL=false&useUnicode=true&characterEncoding=utf-8
username:
password:
slave_1: # slave 是组名,可以自定义; 1 是从库名 ,可以多个从库在slave组中, 自动轮询 负载均衡
#type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://狗东西把老子数据库给删了 草泥马 真几把闲的蛋疼:3307/test001?useSSL=false&useUnicode=true&characterEncoding=utf-8
username:
password:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启驼峰映射
1.3 druid数据源冲突解决 -> 视频15:20 秒处
2 代码
2.1 实体类
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user") //连接数据库表名
public class User implements Serializable {
@TableId(value = "id", type = IdType.AUTO) // 解决 id 自动生成太大
private Integer id; // 主键
private String email; // 邮箱
private String password; // 密码,使用 md5 + 盐 加密
private String salt; // 盐
private String confirmCode; // 确认码
private LocalDateTime activationTime; // 激活失效时间
private Byte isValid; // 是否可用
}
2.2 mapper -> 调用操作数据库方法 操作数据库
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.test_reg.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
2.3 service -> 指定数据源 -> 用Mapper 接口 -> 操作数据库
@DS("slave")
public List getUser(){
userMapper.select(参数)
}
@DS("master")
public Map<String, Object> Register(User user) {
userMapper.insert(user);
}
2.4 controller -> 用户使用接口 -> 用service 方法
@GetMapping("getUser")
public List getUser() {
return userService.getUser();
}
@PostMapping("register")
public Map<String, Object> Register(@RequestBody User user) {
return userService.Register(user);
}