作为一个资深的CRUD工程师,我们在实际使用springboot开发项目的时候,难免会遇到同时使用多个数据库的情况,比如前脚刚查询mysql,后脚就要查询sqlserver。为springboot配置多个数据源,需要用哪个数据库连接,直接@Autowired不就行了。那么问题来了,怎么配置呢?
1、准备工作:
a、建立了两个数据库,分别名为foodie-shop和foodie-shop-2,foodie-shop包含表users,foodie-shop-2包含表myusers。两表定义完全一致,只是填充的数据有差异。
CREATE TABLE `myusers` (
`id` varchar(64) NOT NULL COMMENT '主键id 用户id',
`username` varchar(32) NOT NULL COMMENT '用户名 用户名',
`password` varchar(64) NOT NULL COMMENT '密码 密码',
`nickname` varchar(32) DEFAULT NULL COMMENT '昵称 昵称',
`realname` varchar(128) DEFAULT NULL COMMENT '真实姓名',
`face` varchar(1024) NOT NULL COMMENT '头像',
`mobile` varchar(32) DEFAULT NULL COMMENT '手机号 手机号',
`email` varchar(32) DEFAULT NULL COMMENT '邮箱地址 邮箱地址',
`sex` int(11) DEFAULT NULL COMMENT '性别 性别 1:男 0:女 2:保密',
`birthday` date DEFAULT NULL COMMENT '生日 生日',
`created_time` datetime NOT NULL COMMENT '创建时间 创建时间',
`updated_time` datetime NOT NULL COMMENT '更新时间 更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表 ';
CREATE TABLE `users` (
`id` varchar(64) NOT NULL COMMENT '主键id 用户id',
`username` varchar(32) NOT NULL COMMENT '用户名 用户名',
`password` varchar(64) NOT NULL COMMENT '密码 密码',
`nickname` varchar(32) DEFAULT NULL COMMENT '昵称 昵称',
`realname` varchar(128) DEFAULT NULL COMMENT '真实姓名',
`face` varchar(1024) NOT NULL COMMENT '头像',
`mobile` varchar(32) DEFAULT NULL COMMENT '手机号 手机号',
`email` varchar(32) DEFAULT NULL COMMENT '邮箱地址 邮箱地址',
`sex` int(11) DEFAULT NULL COMMENT '性别 性别 1:男 0:女 2:保密',
`birthday` date DEFAULT NULL COMMENT '生日 生日',
`created_time` datetime NOT NULL COMMENT '创建时间 创建时间',
`updated_time` datetime NOT NULL COMMENT '更新时间 更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表 ';
b、实现通过tkmybatis-generator插件创建了对应的pojo、xml和mapper文件,参考《Mybatis系列-tkmybatis-01-使用tk-mybatis generator 自动生成代码》
2、在application.properties配置两个datasource
配置application.properties文件。这里两个datasource分别指向不同的数据库。看到这里可能有些疑惑,之前不都是配置的spring.datasource.driver

最低0.47元/天 解锁文章
677

被折叠的 条评论
为什么被折叠?



