SpringBoot(五)——整合 Mybatis、JPA(未完待续)

SpringBoot(五)——整合 Mybatis、JPA(未完待续)

一、整合 Mybatis

1、整合 Mybatis

创建项目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后开始配置数据源:
在这里插入图片描述

然后根据数据库来创建一个实体类:
在这里插入图片描述
接着就是 mapper 层:
如果 mapper.xml 跟接口放在一起,就不需要其他配置,只需要在 pom.xml 那里配置 build。
在这里插入图片描述

在这里插入图片描述
但是每个 mapper 上面都要加,这样很麻烦,有个一劳永逸的方式:
在这里插入图片描述
然后测试代码:
在这里插入图片描述
可以发现没问题。

2、其他地方放置 mapper.xml 文件

如果 xml 文件想放在 resources 文件夹里,也是可以的:
先去掉 build:
在这里插入图片描述
接着,可以按照编译后的文件夹路径来在 resources 里面创建:
在这里插入图片描述
这样创建也可以。因为编译以后接口跟 xml 文件实际上还是在同一个文件夹里面。

也可以:
在这里插入图片描述
这么创建文件夹就需要另外配置:
在这里插入图片描述
以及其他配置:
在这里插入图片描述

3、整合 Mybatis 多数据源

这里 mapper 和接口是放在一起的。

这个跟前面的多数据源配置基本一样:

spring.datasource.one.username=root
spring.datasource.one.password=root
spring.datasource.one.url=jdbc:mysql:///test?serverTimezone=Asia/Shanghai

spring.datasource.two.username=root
spring.datasource.two.password=root
spring.datasource.two.url=jdbc:mysql:///test01?serverTimezone=Asia/Shanghai

在这里插入图片描述

@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.one")
    DataSource dsOne(){
        return DruidDataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.two")
    DataSource dsTwo(){
        return DruidDataSourceBuilder.create().build();
    }
}
@Configuration
//配置包扫描,并且指定对应的 SqlSessionFactory 和 SqlSessionTemplate
@MapperScan(basePackages = "com.qf.demo_mybatis2.mapper",sqlSessionFactoryRef = "sqlSessionFactoryOne",
        sqlSessionTemplateRef = "sqlSessionTemplateOne")
public class MyBatisConfigOne {
    @Autowired
    @Qualifier("dsOne")
    DataSource dsOne;

    @Bean
    SqlSessionFactory sqlSessionFactoryOne(){
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dsOne);
        SqlSessionFactory sessionFactory = null;

        try {
            sessionFactory = sqlSessionFactoryBean.getObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return sessionFactory;
    }

    @Bean
    SqlSessionTemplate sqlSessionTemplateOne(){
        return new SqlSessionTemplate(sqlSessionFactoryOne());
    }
}

还需要配置 two,two 也是一样的,将上面的改个名字即可。

接着就是配置对应的实体类和 mapper ,查询,就完成了。

然后测试代码:
在这里插入图片描述

4、使用动态数据源

如果有数据源的话,数据库做读写分离。

这里引用一下 苞米豆 的工具:
在这里插入图片描述

然后创建这个文件(原来的那个 properties 文件可以不要):
在这里插入图片描述

spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master:
          url: jdbc:mysql:///test?serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql:///test01?serverTimezone=Asia/Shanghai
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver

        #......省略
        #以上会配置一个默认库master,一个组slave下有两个子库slav
mybatis:
  mapper-locations: classpath*:/mapper/*.xml
  type-aliases-package: com.qf.demo_mybatis2.model

用这玩意还需要一个 service 层:

二、JPA

1、

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值