spring boot学习笔记(2)
2024-09-02 08:46:43
Spring boot集成mybatis的三种方式
一、XML文件
在pom文件里面引入mybatis和数据库的依赖
在application.properties中加入数据源配置
其他和ssm配置完全一样
二、注解方式
同上,只是少了xml文件配置,通过注解的形式配置在mapper文件里
三、多数据源
多数据源,可以同时连接多个数据库
创建两个数据源配置文件ClusterDataSourceConfig.java、MasterDataSourceConfig.java
package org.spring.springboot.config.ds; import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration
// 扫描 Mapper 接口并容器管理
@MapperScan(basePackages = ClusterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "clusterSqlSessionFactory")
public class ClusterDataSourceConfig { // 精确到 cluster 目录,以便跟其他数据源隔离
static final String PACKAGE = "org.spring.springboot.dao.cluster";
static final String MAPPER_LOCATION = "classpath:mapper/cluster/*.xml"; @Value("${cluster.datasource.url}")
private String url; @Value("${cluster.datasource.username}")
private String user; @Value("${cluster.datasource.password}")
private String password; @Value("${cluster.datasource.driverClassName}")
private String driverClass; @Bean(name = "clusterDataSource")
public DataSource clusterDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
} @Bean(name = "clusterTransactionManager")
public DataSourceTransactionManager clusterTransactionManager() {
return new DataSourceTransactionManager(clusterDataSource());
} @Bean(name = "clusterSqlSessionFactory")
public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("clusterDataSource") DataSource clusterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(clusterDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(ClusterDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
} 这样配置之后,可以就可以同时操作两个数据库了
最新文章
- javascript中的prototype(原型)认识
- 《Linux内核设计与实现》读书笔记 - 目录 (完结)
- 关于MySQL redo log,挖些坑,慢慢填
- word2010插入奇数页 使奇偶页不同的问题
- HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)
- Bridging signals---hdu1950(最长上升子序列复杂度n*log(n) )
- 移动端material风格日期时间选择器
- Java中finalize()
- 使用pdb调试python
- [转载]浅析Windows安全相关的一些概念
- [Java第一个游戏]JFrame文本框下贪吃蛇
- 2017最新PHP初级经典面试题目汇总(下篇)
- spring加载xml的六种方式
- gevent模块学习(四)
- Linux系统时钟的更改
- Java关于struts2框架
- Gradle环境变量的配置
- js封装插件
- ftps加密服务器
- 原生JS 将canvas生成图片
热门文章
- get_magic_quotes_gpc() PHP转义的真正含义
- Project Euler Problem 7-10001st prime
- 【CSS3】loading动画
- Python--day69--单表查询之神奇的双下划线
- 解决Pycharm中SystemError报错
- Pytorch Bi-LSTM + CRF 代码详解
- Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里
- ThinkPHP 模版中的内置标签
- 地址中如果含有";+";,发给服务器时";+";变成了空格问题解析
- JAVA核心知识点--打包 FatJar 方法小结