一、整合Mybatis

1、配置Mybatis
(1)配置启动器

微服务多个nacos数据库连接配置如何整合到一起_java

<!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
(2)配置驼峰和别名包

微服务多个nacos数据库连接配置如何整合到一起_spring boot_02

# 配置驼峰
mybatis:
  configuration:
    map-underscore-to-camel-case: true
  type-aliases-package: com.itzheng.pojo #配置别名包
  #mapper-locations: mapper/*.xml
(3)配置mapper扫描器

微服务多个nacos数据库连接配置如何整合到一起_spring_03

package com.itzheng;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.itzheng.mapper")
public class BootDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(BootDemoApplication.class,args);
    }
}

二、通用Mapper整合

1、引入依赖
(1)在pom.xml当中

微服务多个nacos数据库连接配置如何整合到一起_java_04

<!--通用Mapper-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>
(2)引入的通用Mapper有一些配置就不需要了

微服务多个nacos数据库连接配置如何整合到一起_spring boot_05

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http:///POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http:///POM/4.0.0 http:///xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itzheng.demo</groupId>
    <artifactId>springboot-demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
            <groupId>org.springframework.boot</groupId>
        <version>2.0.4.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--通用Mapper-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>

    </dependencies>

</project>
(3)驼峰也会默认开启,所以也不需要配置了

微服务多个nacos数据库连接配置如何整合到一起_spring boot_06


全部

server:
  port: 8088
  servlet:
    path: /
logging:
  level:
    com.itzheng: debug
    #org.springframework: debug

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/itzheng
    username: root
    password: root
mybatis:
  type-aliases-package: com.itzheng.pojo #配置别名包
  #mapper-locations: mapper/*.xml
(4)启动类BootDemoApplication改变扫描包通过tk.mybatis.mapper扫描

微服务多个nacos数据库连接配置如何整合到一起_User_07


微服务多个nacos数据库连接配置如何整合到一起_spring_08

package com.itzheng;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan("com.itzheng.mapper")
public class BootDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(BootDemoApplication.class,args);
    }
}
2、创建UserMapper接口并继承Mapper会自动具备一系列的对数据的方法

微服务多个nacos数据库连接配置如何整合到一起_spring boot_09

package com.itzheng.mapper;
import com.itzheng.pojo.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper  extends Mapper<User> {

}
3、在对应的实体类上添加注解实现SQL语句的自动生成

微服务多个nacos数据库连接配置如何整合到一起_mysql_10

package com.itzheng.pojo;

import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;

import ;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

@Data
@Table(name="tb_user")
public class User {
    //id
    @Id
    @KeySql(useGeneratedKeys = true)  //useGeneratedKeys主键自增
    private Long id;
    //用户名
    private String userName;
    //密码
    private String password;
    //姓名
    private String name;
    //年龄
    private Integer age;
    //性别 1、男性  2、女性
    private Integer sex;
    //出生日期
    private Date birthday;
    //创建时间
    private Date created;
    //更新时间
    private Date updated;
    //备注

    private String note;

    @Transient  //Transient当前属性不是要生成SQL的的属性
    private int aaaa;

}
4、测试
(1)在pom.xml当中引入test

微服务多个nacos数据库连接配置如何整合到一起_mysql_11

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
   </dependency>
(2)创建测试类UserMapperTest

微服务多个nacos数据库连接配置如何整合到一起_spring_12

package com.itzheng.mapper;

import com.itzheng.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testQuery(){
        User user = userMapper.selectByPrimaryKey(8L);
        System.out.println("User = " +user);
    }

}

数据库当中添加一些数据

INSERT INTO `tb_user` VALUES ('19', 'zhangsan', '123', 'zhangsan123', '12', '1', '2021-06-14', '1', '2021-06-29 18:21:50', '2021-06-30 18:21:53');

微服务多个nacos数据库连接配置如何整合到一起_spring boot_13

运行测试类

微服务多个nacos数据库连接配置如何整合到一起_User_14


查询的结果

微服务多个nacos数据库连接配置如何整合到一起_mysql_15

三、业务层整合

1、创建UserService

微服务多个nacos数据库连接配置如何整合到一起_spring_16


微服务多个nacos数据库连接配置如何整合到一起_java_17

package com.itzheng.service;
import com.itzheng.mapper.UserMapper;
import com.itzheng.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;//注入usermapper接口
    //根据id查询的方法
    public User queryById(Long id){
        return userMapper.selectByPrimaryKey(id);
    }
    //插入数据的方法
    @Transactional  //添加事务
    public void insertUser(User user){
        userMapper.insert(user);
    }
}
2、运行测试,
(1)修改HelloController

微服务多个nacos数据库连接配置如何整合到一起_User_18

package com.itzheng.web;

import com.itzheng.pojo.User;
import com.itzheng.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("user")
public class HelloController {

    @Autowired
    private UserService userService;

    @GetMapping("{id}")
    public User hello(@PathVariable("id") Long id){
        return userService.queryById(id);
    }

}
(2)运行项目

微服务多个nacos数据库连接配置如何整合到一起_spring_19


访问路径http://localhost:8088/user/1 1号

微服务多个nacos数据库连接配置如何整合到一起_mysql_20

{
	"id":1,
	"userName":"zhangsan",
	"password":"123",
	"name":"zhangsan123",
	"age":12,
	"sex":1,
	"birthday":"2021-06-13T16:00:00.000+0000",
	"created":"2021-06-29T10:21:50.000+0000",
	"updated":"2021-06-30T10:21:53.000+0000",
	"note":null
}

2号

微服务多个nacos数据库连接配置如何整合到一起_User_21


项目全部代码