Jspxcms支持多数据源吗
本文小编为大家详细介绍“Jspxcms支持多数据源吗”,内容详细,步骤清晰,细节处理妥当,希望这篇“Jspxcms支持多数据源吗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
首先要确定多数据源是指什么。
如果多数据源是指系统中的表分别放到不同数据库里(比如,栏目表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 ,网上也有大量的教程。
修改数据库连接配置
配置文件class="lazy" data-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.Driverapp.datasource.first.url=jdbc:mysql://localhost/jspxcms?characterEncoding=utf8app.datasource.first.username=rootapp.datasource.first.password=passwordapp.datasource.first.driver-class-name=com.mysql.jdbc.Driverapp.datasource.second.url=jdbc:mysql://localhost/second_database?characterEncoding=utf8app.datasource.second.username=rootapp.datasource.second.password=passwordapp.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()); }
使用范例
至此多个数据源配置完成。使用范例如下:
@Controllerpublic 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;}
读到这里,这篇“Jspxcms支持多数据源吗”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341