作家
登录

Java Spring中同时访问多种不同数据库

作者: 来源: 2017-05-19 16:02:54 阅读 我要评论

  1. package com.aegis.controller;import java.util.HashMap;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; 
  2.  
  3. @RestControllerpublic class DemoController { 
  4.  
  5.     @Autowired 
  6.     @Qualifier("postgresJdbcTemplate")    private JdbcTemplate postgresTemplate; 
  7.  
  8.     @Autowired 
  9.     @Qualifier("mysqlJdbcTemplate")    private JdbcTemplate mysqlTemplate; 
  10.  
  11.     @RequestMapping(value = "/getPGUser")    public String getPGUser() {        Map<String, Object> map = new HashMap<String, Object>();        String query = " select * from usermaster";        try {            map = postgresTemplate.queryForMap(query); 
  12.         } catch (Exception e) { 
  13.             e.printStackTrace(); 
  14.         }        return "PostgreSQL Data: " + map.toString(); 
  15.     } 
  16.  
  17.     @RequestMapping(value = "/getMYUser")    public String getMYUser() {        Map<String, Object> map = new HashMap<String, Object>();        String query = " select * from usermaster";        try {            map = mysqlTemplate.queryForMap(query); 
  18.         } catch (Exception e) { 
  19.             e.printStackTrace(); 
  20.         }        return "MySQL Data: " + map.toString(); 
  21.     } 

解释:

本文以在Spring框架下开辟一个SpringMVC法度榜样为例,示范了一种同时拜访多种数据库的办法,并且尽量地简化设备修改。

URL: http://localhost:6060/getMYUser

@RestController类注解注解这个类中定义的所有函数都被默认绑定到响应中。

膳绫擎代码段创建了一个JdbcTemplate实例。@Qualifier用于生成一个对应类型的模板。代码中供给的是postgresJdbcTemplate作为Qualifier参数,所以它会加载MultipleDBConfig实例的jdbcTemplate(…)函数创建的Bean。

如许Spring就会根据你的请求来调用合适的JDBC模板。在调用URL “/getPGUser”时Spring会用PostgreSQL模板,调用URL “/getMYUser”时Spring会用MySQL模板。

  1. @Autowired@Qualifier("postgresJdbcTemplate")private JdbcTemplate postgresTemplate; 

这里我们用queryForMap(String query)函数来应用JDBC模板大年夜数据库中获取数据,queryForMap(…)返回一个map,以字段名为Key,Value为实际字段值。

演示

履行类MultipleDbApplication中的main (…)函数就可以看到演示效不雅。在你常用的浏览器中点击下面URL:


  推荐阅读

  如何在Linux中使用Asciinema进行录制和回放终端会话

运行膳绫擎的敕令今后,你会留意到, Asciinema 已经开端录制终端会话了,你可以按下 CTRL+D 快捷键或履行 exit 敕令来停止录制。如不雅你应用的是 Debian/Ubuntu/Mint Linux 体系,你可>>>详细阅读


本文标题:Java Spring中同时访问多种不同数据库

地址:http://www.17bianji.com/lsqh/35327.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)