美文网首页java快速开发平台
wueasy框架之MyBatis多数据库使用

wueasy框架之MyBatis多数据库使用

作者: fallsea | 来源:发表于2019-05-21 12:54 被阅读33次

    使用wueasy框架过程中,微服务怎么使用MyBatis对多个数据库进行操作?

    前一章我们已经介绍了MyBatis使用教程,本章是在上一章的基础上进行操作,假设你已经对上一章内容有所了解。

    新增数据库映射

    编写数据库表结构映射实体bean,注意:包的路径和之前不一样

    为了简化自定义sql,这里使用的是通用Mapper,部分属性需要使用注解方式,注解可参考以下api文档https://github.com/abel533/Mapper/wiki/2.2-mapping

    package com.wueasy.demo2.entity;
    
    import java.io.Serializable;
    
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    import tk.mybatis.mapper.annotation.KeySql;
    
    @Table(name = "demo")
    public class Demo implements Serializable {
    
        private static final long serialVersionUID = 1L;
        @Id
        @KeySql(useGeneratedKeys = true)
        private Long id;
    
        private String name;
    
        private Long createdBy;
    
        private String createdTime;
    
        private Long modifiedBy;
    
        private String modifiedTime;
    
        private String city;
    
        private String type;
    
        private String sex;
    
        private String state;
    
        private String description;
    
        private String filePath;
    
        private String area1;
    
        private String area2;
    
        private String area3;
    
    
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Long getCreatedBy() {
            return createdBy;
        }
    
        public void setCreatedBy(Long createdBy) {
            this.createdBy = createdBy;
        }
    
        public String getCreatedTime() {
            return createdTime;
        }
    
        public void setCreatedTime(String createdTime) {
            this.createdTime = createdTime;
        }
    
        public Long getModifiedBy() {
            return modifiedBy;
        }
    
        public void setModifiedBy(Long modifiedBy) {
            this.modifiedBy = modifiedBy;
        }
    
        public String getModifiedTime() {
            return modifiedTime;
        }
    
        public void setModifiedTime(String modifiedTime) {
            this.modifiedTime = modifiedTime;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String getState() {
            return state;
        }
    
        public void setState(String state) {
            this.state = state;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    
        public String getFilePath() {
            return filePath;
        }
    
        public void setFilePath(String filePath) {
            this.filePath = filePath;
        }
    
        public String getArea1() {
            return area1;
        }
    
        public void setArea1(String area1) {
            this.area1 = area1;
        }
    
        public String getArea2() {
            return area2;
        }
    
        public void setArea2(String area2) {
            this.area2 = area2;
        }
    
        public String getArea3() {
            return area3;
        }
    
        public void setArea3(String area3) {
            this.area3 = area3;
        }
    
    }
    

    新增mapper接口

    注意:包的路径和之前不一样 接口需要继承通用Mapper接口,Mapper接口提供了常见的增删改查方法,可以直接使用。

    package com.wueasy.demo2.mapper;
    
    import java.util.List;
    
    import com.wueasy.base.entity.DataMap;
    import com.wueasy.demo2.entity.Demo;
    
    import tk.mybatis.mapper.common.Mapper;
    
    public interface DemoMapper extends Mapper<Demo> {
    
    }
    

    数据库连接配置

    配置数据库连接信息和mybatis扫描信息,需要配置两个数据库连接。

    重点注意:mybatis的扫描配置,通过配置不同的扫描路径,自动注入不同的数据源

    wueasy:
      datasource :
        demo : #第一个数据库
          mybatis:
            basePackage: com.wueasy.demo.mapper
            mapperLocations: classpath*:mybatis/wueasy/demo/*.xml
          connection:
            url : jdbc:mysql://localhost:3306/easy_data?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
            username : easyadmin
            password : easyadmin
            #连接池配置
            initialSize : 10  #初始化大小
            minIdle : 10  #最小连接
            maxActive : 20  #最大连接
            maxWait : 60000  #配置获取连接等待超时的时间
            timeBetweenEvictionRunsMillis : 2000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            minEvictableIdleTimeMillis : 600000  #配置一个连接在池中最小生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
            validationQuery : SELECT 1 from dual
            testWhileIdle : true
            testOnBorrow : false
            testOnReturn : false
            keepAlive : true
        demo2 : #第二个数据库
          mybatis:
            basePackage: com.wueasy.demo2.mapper
            mapperLocations: classpath*:mybatis/wueasy/demo2/*.xml
          connection:
            url : jdbc:mysql://localhost:3306/easy_data?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
            username : easyadmin
            password : easyadmin
            #连接池配置
            initialSize : 10  #初始化大小
            minIdle : 10  #最小连接
            maxActive : 20  #最大连接
            maxWait : 60000  #配置获取连接等待超时的时间
            timeBetweenEvictionRunsMillis : 2000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            minEvictableIdleTimeMillis : 600000  #配置一个连接在池中最小生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
            validationQuery : SELECT 1 from dual
            testWhileIdle : true
            testOnBorrow : false
            testOnReturn : false
            keepAlive : true
    

    测试接口

    使用junit测试接口

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(classes=Application.class)
    public class DbTests {
    
        @Autowired
        private UserMapper userMapper;
    
      @Autowired
        private DemoMapper demoMapper;
    
        @Test
        public void testObj()  {
    
            try{
                //查询全部
                System.err.println(JsonHelper.toJSONString(userMapper.selectAll()));
    
            }catch(Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    

    原文地址

    原文地址

    相关文章

      网友评论

        本文标题:wueasy框架之MyBatis多数据库使用

        本文链接:https://www.haomeiwen.com/subject/rgndzqtx.html