java spring 数据库_Java Spring中同时访问多种不同数据库

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:

7e7478838cf4e674069b66645e678a87.png

推荐阅读

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值