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;
@RestControllerpublic class DemoController {
@Autowired
@Qualifier("postgresJdbcTemplate") private JdbcTemplate postgresTemplate;
@Autowired
@Qualifier("mysqlJdbcTemplate") private JdbcTemplate mysqlTemplate;
@RequestMapping(value = "/getPGUser") public String getPGUser() { Map map = new HashMap(); String query = " select * from usermaster"; try { map = postgresTemplate.queryForMap(query);
} catch (Exception e) {
e.printStackTrace();
} return "PostgreSQL Data: " + map.toString();
}
@RequestMapping(value = "/getMYUser") public String getMYUser() { Map map = new HashMap(); String query = " select * from usermaster"; try { map = mysqlTemplate.queryForMap(query);
} catch (Exception e) {
e.printStackTrace();
} return "MySQL Data: " + map.toString();
}
}
解释:
本文以在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模板。@Autowired@Qualifier("postgresJdbcTemplate")private JdbcTemplate postgresTemplate;
这里我们用queryForMap(String query)函数来应用JDBC模板大年夜数据库中获取数据,queryForMap(…)返回一个map,以字段名为Key,Value为实际字段值。
演示
履行类MultipleDbApplication中的main (…)函数就可以看到演示效不雅。在你常用的浏览器中点击下面URL:
推荐阅读
运行膳绫擎的敕令今后,你会留意到, Asciinema 已经开端录制终端会话了,你可以按下 CTRL+D 快捷键或履行 exit 敕令来停止录制。如不雅你应用的是 Debian/Ubuntu/Mint Linux 体系,你可>>>详细阅读
地址:http://www.17bianji.com/lsqh/35327.html