-
MySQL 5.5 版本以上
-
JDK 1.8 以上
-
开发工具:idea 2020, maven 3.5.2 版本及以上
-
SpringBoot 版本 2.2.10
=====================================================================
2.0 项目结构
2.1 坐标依赖
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.3
mysql
mysql-connector-java
8.0.11
com.alibaba
druid-spring-boot-starter
1.1.10
2.2 application.yml
因为配置了两个数据源,所以为了区分它们,我们会自定义配置,同时数据库也会创建两个
spring:
datasource:
druid:
db1:
url: jdbc:mysql://localhost:3306/dts1?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: root
db2:
url: jdbc:mysql://localhost:3306/dst2?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: root
2.3 创建数据库
为了简化操作,我只是保证两个数据库的名称不一致,其它的数据库名称,字段都是一致的
我们创建了一个名为 book 的表,并随机插入几条数据
DROP TABLE IF EXISTS book
;
CREATE TABLE book
(
id
tinyint(3) NOT NULL AUTO_INCREMENT,
name
varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
author
varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*Data for the table book
*/
insert into book
(id
,name
,author
) values (1,‘时间简史’,‘霍金’),(2,‘放学后’,‘东野圭吾’),(3,‘白白夜行’,‘东野圭吾’),(4,‘红楼梦’,‘清 曹雪芹’);
======================================================================
3.1 mapper 编写
在 MyBatis 中,我没有使用注解开发,而是使用的 xml 方式,所以我们还需要在 SpringBoot 的 Resources 目录下创建 mapper 目录 和 map1,map2 两个子目录
dao 层相关的项目结构如下,然后下面我只给出 map1 中的相关代码,map2 中只是相对应的修改
-
mapper
-
map1
-
BookMapper1
-
map2
-
BookMapper2
-
resources
-
mapper
-
map1
-
BookMapper1.xml
-
map2
-
BookMapper2.xml
BookMapper1代码如下:
package cn.gorit.mapper.map1;
import cn.gorit.entity.Book;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface BookMapper1 {
List getAllBooks();
}
BookMapper1.xml 配置如下
<?xml version="1.0" encoding="utf-8" ?>select * from book
3.2 entity 实体类编写
package cn.gorit.entity;
public class Book {
private Integer id;
private String name;
private String author;
// getter 和 setter 、构造方法省略
}
3.3 config 配置类
DataSourceConfig 配置类编写
package cn.gorit.config;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
/**
-
DataSourceConfig 中提供了两个数据源:database1 和 database2,默认方法名即实例名
-
@ConfigurationProperties 使用不同的前缀配置文件
*/
@Configuration
public class DataSourceConfig {
// 标识为第一个数据源
@Bean(“dataSource1”)
@ConfigurationProperties(prefix = “spring.datasource.druid.db1”)
DataSource database1() {
return DruidDataSourceBuilder.create().build();
}
// 标识为第二个数据源
@Bean(“dataSource2”)
@ConfigurationProperties(prefix = “spring.datasource.druid.db2”)
DataSource database2() {
return DruidDataSourceBuilder.create().build();
}
}
MyBatisConfigOne 配置类 (第一个数据源对应的配置类)
package cn.gorit.config;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-wxaLZ76z-1715068322555)]
[外链图片转存中…(img-fJk75IGs-1715068322556)]
[外链图片转存中…(img-lOGxSHJl-1715068322556)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!