前言:
当前朋友们对“html怎么连接数据库”大约比较注意,朋友们都需要知道一些“html怎么连接数据库”的相关文章。那么小编也在网络上网罗了一些有关“html怎么连接数据库””的相关文章,希望看官们能喜欢,我们一起来了解一下吧!一般一个项目就只会用到一个数据库,但是有时候遇到比较复杂的一点的项目就会涉及到多个数据库,比如在业务量较大的时候会涉及到分库分表,如果不增加数据库代理层的话,就只有在项目中来处理。还有像我们现在在一个项目中会涉及到GBase、MySQL、DB2这三种数据库,这种情况就涉及到多种数据库连接。那么我们Spring Boot中如何实现多数据库连接呢?
至于单数据库连接,可以参考我之前记录的日记Spring Boot整合Mybatis Plus和Druid,这里我们就来直接开始多数据库连接的实战。
添加依赖包
<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.0.0</version></dependency>Spring Boot多数据源连接PostgreSQL和MySQL配置
spring: datasource: druid: stat-view-servlet: enabled: true login-username: admin login-password: admin dynamic: primary: mariadb datasource: mariadb: username: root password: root url: jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true driver-class-name: org.mariadb.jdbc.Driver druid: initial-size: 50 max-active: 200 min-idle: 50 max-wait: 50 pgsql: username: postgres password: postgres url: jdbc:postgresql://xxx.xx.xx.xxx:5432/databasename driver-class-name: org.postgresql.Driver druid: initial-size: 50 max-active: 200 min-idle: 50 max-wait: 50使用dynamic-datasource新建实体类
我这里用到了两个实体类User和Feedback,User类就不做展示,上一篇有,这里就直接看看我们的Feddback,
@Data@TableName("wechat_feedback")public class Feedback { private int id; private String title; private String content; @TableField("open_id") private String openId;}新建Mapper接口类
UserMapper:
public interface UserMapper extends BaseMapper<User>{}
FeedbackMapper:
public interface FeedbackMapper extends BaseMapper<Feedback> {}在controller中调用Mapper
这里我们还是用之前编写的UserController类:
@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DS { /** * groupName or specific database name or spring SPEL name. * * @return the database you want to switch */ String value();}
这里需要使用@DS注解来标识要使用的数据源,该注解可以使用在Class和METHOD上,如果是使用在类上,则表示该类都使用这个指定的数据库连接。
@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DS { /** * groupName or specific database name or spring SPEL name. * * @return the database you want to switch */ String value();}
由于我这里使用到了Druid,那么还需要在启动类上加上@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class),排除掉druid-spring-boot-starter中的DruidDataSourceAutoConfigure自动配置类。
现在我们启动起来看看效果,可以在启动日志中看到
2020-02-03 12:54:42.740 INFO com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:1010) 2CNU7X5OLAUE004 --- [ main] c.a.d.p.DruidDataSource : {dataSource-1,mariadb} inited2020-02-03 12:54:46.592 INFO com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:1010) 2CNU7X5OLAUE004 --- [ main] c.a.d.p.DruidDataSource : {dataSource-2,pgsql} inited2020-02-03 12:54:46.594 INFO com.baomidou.dynamic.datasource.DynamicRoutingDataSource.addDataSource(DynamicRoutingDataSource.java:148) 2CNU7X5OLAUE004 --- [ main] c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - load a datasource named [mariadb] success2020-02-03 12:54:46.594 INFO com.baomidou.dynamic.datasource.DynamicRoutingDataSource.addDataSource(DynamicRoutingDataSource.java:148) 2CNU7X5OLAUE004 --- [ main] c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - load a datasource named [pgsql] success
现在来访问,可以看到两个数据源
这篇博文是今年初记录,但是里面的东西不过时,若有不足之处还望指正,多谢。欢迎感兴趣的朋友与我多多交流
标签: #html怎么连接数据库