SpringBoot项目同时使用mysql和sqlserver
在开发过程中,有时候我们需要同时连接多个数据库来完成各种业务需求。本文将介绍如何在SpringBoot项目中同时使用Mysql和SQLServer数据库。
第一步:添加数据库依赖
首先,在pom.xml
文件中添加Mysql和SQLServer的数据库依赖。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
第二步:配置数据源
在application.properties
文件中配置Mysql和SQLServer的数据源。
# Mysql数据源配置
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db_mysql
spring.datasource.mysql.username=root
spring.datasource.mysql.password=root
spring.datasource.mysql.driver-class-name=com.mysql.cj.jdbc.Driver
# SQLServer数据源配置
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=db_sqlserver
spring.datasource.sqlserver.username=sa
spring.datasource.sqlserver.password=sa
spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
第三步:创建实体类和Repository
创建Mysql和SQLServer对应的实体类和Repository。
// Mysql实体类
@Entity
@Table(name = "mysql_table")
public class MysqlEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// getters and setters
}
// Mysql Repository
public interface MysqlRepository extends JpaRepository<MysqlEntity, Long> {
}
// SQLServer实体类
@Entity
@Table(name = "sqlserver_table")
public class SqlServerEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// getters and setters
}
// SQLServer Repository
public interface SqlServerRepository extends JpaRepository<SqlServerEntity, Long> {
}
第四步:Service层和Controller层
创建Service层和Controller层,分别调用MysqlRepository和SqlServerRepository。
// Mysql Service
@Service
public class MysqlService {
@Autowired
private MysqlRepository mysqlRepository;
public List<MysqlEntity> getAllMysqlEntities() {
return mysqlRepository.findAll();
}
}
// SQLServer Service
@Service
public class SqlServerService {
@Autowired
private SqlServerRepository sqlServerRepository;
public List<SqlServerEntity> getAllSqlServerEntities() {
return sqlServerRepository.findAll();
}
}
// Controller
@RestController
public class DatabaseController {
@Autowired
private MysqlService mysqlService;
@Autowired
private SqlServerService sqlServerService;
@GetMapping("/mysql")
public List<MysqlEntity> getMysqlEntities() {
return mysqlService.getAllMysqlEntities();
}
@GetMapping("/sqlserver")
public List<SqlServerEntity> getSqlServerEntities() {
return sqlServerService.getAllSqlServerEntities();
}
}
类图
使用Mermaid语法绘制类图如下:
classDiagram
class MysqlEntity {
id: Long
name: String
}
class SqlServerEntity {
id: Long
name: String
}
MysqlEntity <|-- MysqlRepository
SqlServerEntity <|-- SqlServerRepository
总结
通过以上步骤,我们可以在SpringBoot项目中实现同时连接Mysql和SQLServer数据库的功能。在实际项目中,根据具体需求可以对数据库配置、实体类和Repository进行进一步的定制和扩展,以适应业务需求。希望本文能够帮助到你在开发过程中遇到类似问题时的解决方案。
引用: