- 浏览: 3559451 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
spxcms是否支持多数据源?
文档 > 二次开发 2019-04-30 12:56 阅读855
首先要确定多数据源是指什么。
如果多数据源是指系统中的表分别放到不同数据库里(比如,栏目表cms_node放到A数据库,文章表cms_info放到B数据库),这种情况是不支持的。
如果是系统中的表放到一个数据库里,但还希望通过二次开发从其它数据库里读取一些数据,这种情况是可以的。
Jspxcms系统中使用的框架是spring-boot、spring-data-jpa。本质上说,是否支持多数据源只和这些框架有关,和系统本身无关。spring-boot官方文档里有介绍多个数据源的配置方法 https://docs.spring.io/spring-boot/docs/1.5.20.RELEASE/reference/htmlsingle/#howto-two-datasources ,网上也有大量的教程。
修改数据库连接配置
配置文件src/main/resources/application.properties。
将默认数据库配置的spring.datasource前缀改为app.datasource.first,另外再创建第二个数据源app.datasource.second。
#spring.datasource.url=jdbc:mysql://localhost/jspxcms?characterEncoding=utf8
#spring.datasource.username=root
#spring.datasource.password=password
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
app.datasource.first.url=jdbc:mysql://localhost/jspxcms?characterEncoding=utf8
app.datasource.first.username=root
app.datasource.first.password=password
app.datasource.first.driver-class-name=com.mysql.jdbc.Driver
app.datasource.second.url=jdbc:mysql://localhost/second_database?characterEncoding=utf8
app.datasource.second.username=root
app.datasource.second.password=password
app.datasource.second.driver-class-name=com.mysql.jdbc.Driver
增加数据源配置代码
在Java配置文件中增加数据源配置代码com.jspxcms.core.Application。第二个数据源使用JdbcTemplate访问数据。
@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSource dataSource() {
return dataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@ConfigurationProperties("app.datasource.second")
public DataSourceProperties secondDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("app.datasource.second")
public DataSource secondDataSource() {
return secondDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(secondDataSource());
}
使用范例
至此多个数据源配置完成。使用范例如下:
@Controller
public class MyController {
@GetMapping("/second_data_source")
public String index(HttpServletRequest request, org.springframework.ui.Model modelMap) {
List<Map<String, Object>> data = jdbcTemplate.queryForList("select * from my_table");
for (Map<String, Object> d : data) {
System.out.println(d.get("my_field"));
}
}
@Autowired
private JdbcTemplate jdbcTemplate;
}
文档 > 二次开发 2019-04-30 12:56 阅读855
首先要确定多数据源是指什么。
如果多数据源是指系统中的表分别放到不同数据库里(比如,栏目表cms_node放到A数据库,文章表cms_info放到B数据库),这种情况是不支持的。
如果是系统中的表放到一个数据库里,但还希望通过二次开发从其它数据库里读取一些数据,这种情况是可以的。
Jspxcms系统中使用的框架是spring-boot、spring-data-jpa。本质上说,是否支持多数据源只和这些框架有关,和系统本身无关。spring-boot官方文档里有介绍多个数据源的配置方法 https://docs.spring.io/spring-boot/docs/1.5.20.RELEASE/reference/htmlsingle/#howto-two-datasources ,网上也有大量的教程。
修改数据库连接配置
配置文件src/main/resources/application.properties。
将默认数据库配置的spring.datasource前缀改为app.datasource.first,另外再创建第二个数据源app.datasource.second。
#spring.datasource.url=jdbc:mysql://localhost/jspxcms?characterEncoding=utf8
#spring.datasource.username=root
#spring.datasource.password=password
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
app.datasource.first.url=jdbc:mysql://localhost/jspxcms?characterEncoding=utf8
app.datasource.first.username=root
app.datasource.first.password=password
app.datasource.first.driver-class-name=com.mysql.jdbc.Driver
app.datasource.second.url=jdbc:mysql://localhost/second_database?characterEncoding=utf8
app.datasource.second.username=root
app.datasource.second.password=password
app.datasource.second.driver-class-name=com.mysql.jdbc.Driver
增加数据源配置代码
在Java配置文件中增加数据源配置代码com.jspxcms.core.Application。第二个数据源使用JdbcTemplate访问数据。
@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("app.datasource.first")
public DataSource dataSource() {
return dataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@ConfigurationProperties("app.datasource.second")
public DataSourceProperties secondDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("app.datasource.second")
public DataSource secondDataSource() {
return secondDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(secondDataSource());
}
使用范例
至此多个数据源配置完成。使用范例如下:
@Controller
public class MyController {
@GetMapping("/second_data_source")
public String index(HttpServletRequest request, org.springframework.ui.Model modelMap) {
List<Map<String, Object>> data = jdbcTemplate.queryForList("select * from my_table");
for (Map<String, Object> d : data) {
System.out.println(d.get("my_field"));
}
}
@Autowired
private JdbcTemplate jdbcTemplate;
}
发表评论
-
snmp
2020-04-13 11:07 429https://www.iteye.com/blog/zhan ... -
snmp
2020-04-10 21:33 566https://blog.csdn.net/qq_333141 ... -
服务器监控软件
2019-12-31 11:07 513[ERROR] org.hyperic.sigar.Sigar ... -
多数据源
2019-12-23 22:09 455https://gitee.com/baomidou/dyna ... -
mybatis多数据源
2019-12-23 18:09 449https://blog.csdn.net/qq_288042 ... -
springboot ueditor
2019-12-17 18:26 381https://blog.csdn.net/u01216982 ... -
java日志
2019-12-10 12:01 297https://blog.csdn.net/peng_wei_ ... -
spring 多数据源
2019-12-06 09:55 432https://www.jb51.net/article/10 ... -
idea
2019-12-04 17:13 411https://blog.csdn.net/dengachao ... -
手机大屏
2019-11-30 16:02 350http://demo.demohuo.top/modals/ ... -
quarz配置
2019-11-08 11:48 464https://blog.csdn.net/BryantLmm ... -
mysql同步
2019-11-06 12:20 352https://blog.csdn.net/baidu_418 ... -
nginx配置多个服务
2019-11-04 20:35 775https://blog.csdn.net/everljs/a ... -
h5 加壳
2019-11-04 16:05 630https://jingyan.baidu.com/artic ... -
jeui 前端框架
2019-10-22 14:30 1209http://www.jemui.com/demo/ http ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ htt ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
打印机插件
2019-10-18 16:44 315http://www.jq22.com/jquery-info ...
相关推荐
java多数据源—源码(支持sqlserver,mysql,oracle等等);解压后,直接使用idea导入项目,默认是打开了多数据源的,项目里面有现成的sql文件,执行sql文件;多数据源的开关在application-local.yml文件里面的guns:...
在Java Spring框架中,多数据源的实现是一个重要的特性,特别是在大型企业级应用中,它允许应用程序连接到多个数据库,从而实现数据隔离、负载均衡或读写分离等高级功能。本教程将深入探讨如何在Spring中配置和管理...
在Java开发中,多数据源是指应用程序需要连接和操作多个不同的数据库。这通常发生在大型系统中,例如,可能需要一个数据库来存储用户信息,另一个数据库处理订单,还可能有第三个数据库用于日志记录。Spring Boot...
综上所述,这个项目涉及到的知识点包括:分布式系统设计、Java多线程与线程池、Spring框架的多数据源支持、MyBatis的使用以及Spring的事务管理。通过这些技术的组合,可以构建出一个高效、可扩展的分布式应用,以...
在Java开发中,多数据源是指应用程序可以同时连接并操作多个不同的数据库。这种技术在大型系统中非常常见,比如在需要实现数据隔离、读写分离、分库分表等复杂需求时,多数据源就显得尤为重要。Spring、SpringMVC和...
在Java开发中,多数据源配置是常见的需求,特别是在大型企业级应用中,可能需要连接到多个数据库,例如,一个用于存储主业务数据,另一个用于日志或审计数据。本篇将详细介绍如何通过注解的方式来实现Java中的多数据...
在Java开发中,多数据源是指应用程序连接到多个数据库以实现不同的业务需求。这通常发生在分布式系统、微服务架构或需要隔离不同业务数据的情况下。在本主题中,我们将深入探讨如何利用Spring AOP(面向切面编程)...
当我们谈论“Java分布式事务(多数据源)”时,这通常涉及到处理跨越多个数据库或数据源的事务一致性问题。在单个数据库中,我们可以利用ACID(原子性、一致性、隔离性和持久性)特性来确保事务的可靠性,但在分布式...
在Java开发过程中,数据源(DataSource)扮演着非常重要的角色,它负责管理数据库连接资源,为应用程序提供高效、可靠的数据库访问支持。`javax.sql.DataSource`接口定义了标准的数据源接口规范,不同的实现方式能够...
**多数据源支持** jasperreport允许使用多个数据源,这对于处理复杂报表场景非常有用。例如,一个报表可能需要合并来自不同数据库或不同JavaBean的数据。jasperreport通过定义多个JRDataSource和在报表设计中分别...
本示例主要讲解如何使用Spring Boot结合MyBatis实现多数据源切换,并确保AOP事务管理仍然有效。 首先,我们需要配置多数据源。在Spring Boot中,可以使用`DataSource`接口的实现类,如`HikariCP`或`Druid`,创建两...
5. **实现原理**:在Java中,通常通过Spring框架的DataSource和AbstractRoutingDataSource类来实现多数据源。DataSource是Java的JDBC API,用于管理数据库连接。AbstractRoutingDataSource则可以根据某种策略(如...
在Spring框架中,多数据源的支持使得应用可以同时连接并操作多个不同的数据库,这在分布式系统、微服务架构或者需要处理多种数据类型的场景下非常有用。"Spring动态切换多数据源Demo"是一个示例项目,它展示了如何在...
Spring可以通过XML配置或Java配置来实现多数据源。Java配置更符合现代开发习惯,也更易于理解和维护。 3. **核心组件**: - `AbstractRoutingDataSource`:这是Spring提供的核心类,用于动态路由数据源。它会根据...
在许多实际项目中,我们可能需要连接并操作多个数据库,比如主从数据库、读写分离、不同环境的数据隔离等,这时就需要用到Spring的多数据源支持。 Spring多数据源允许我们在一个应用中同时管理多个数据库连接,通过...
基于 SpringBoot 多数据源 动态数据源 主从分离 快速启动器 支持分布式事务。一个基于springboot的快速集成多数据源的启动器。支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库...
这些代码可以直接集成到你的项目中,只需要调整为匹配你的数据库配置,就可以实现Spring Boot 2下的多数据源支持,同时利用Hibernate和MyBatis的优势。 总之,多数据源的实现是Spring Boot 2应用中的高级特性,它...
Spring Boot结合JPA(Java Persistence API)和JdbcTemplate,为开发者提供了灵活且强大的多数据源配置能力。本示例将详细介绍如何在Spring Boot项目中实现这样的配置,以支持不同类型的数据库。 首先,我们要理解...
通过上述步骤,我们可以在Spring框架中实现多数据源的支持,并且通过装饰者模式实现了数据源的动态切换,解决了单例模式下的数据源争用问题。这种方法不仅提高了系统的灵活性,还增强了系统的可扩展性和可维护性。在...
本教程将深入探讨如何在Spring Boot环境下实现多数据源操作及分布式事务管理,并加入对多线程的支持。 首先,我们来理解多数据源的概念。在大型系统中,往往需要连接多个数据库,如主库、从库、测试库等。Spring ...