1.使用Spring的配置文件完成多数据库连接:
1.1 applicationContext.xml [spring核心配置文件]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 知识管理数据库 -->
<bean id="km_source" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=docmanager"></property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
</bean>
<!-- 框架数据库 -->
<bean id="ma_source" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=framemanager"></property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
<property name="maxActive" value="100000"></property>
<property name="maxIdle" value="20"></property>
<property name="maxWait" value="1000"></property>
</bean>
<!-- 用户组织数据库 -->
<bean id="um_source" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=usermanager"></property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
</bean>
<!-- 工作流数据库 -->
<bean id="wfe_source" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=wfemanager"></property>
<property name="username" value="sa"></property>
<property name="password" value="123"></property>
</bean>
<bean id="myDataSource" class="com.smartcom.util.jdbcUtil.DynamicDataSource">
<property name="targetDataSources">
<map>
<entry key="ma_source" value-ref="ma_source"/>
<entry key="um_source" value-ref="um_source"/>
</map>
</property>
<property name="defaultTargetDataSource" ref="km_source"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" abstract="false" lazy-init="false" autowire="default">
<property name="dataSource" ref="myDataSource"/>
</bean>
<import resource="config/ma/beans_pojo.xml"/>
<import resource="config/ma/beans_dao.xml"/>
<import resource="config/ma/beans_service.xml"/>
<import resource="config/ma/beans_action.xml"/>
<import resource="config/ma/beans_ajax.xml"/>
</beans>
1.2 JdbcContext.java [建立一个获得和设置上下文的类]
package com.smartcom.util.jdbcUtil;
/**
* 建立一个获得和设置上下文的类
* @author Liyongbin
* 此类正在使用
*/
public class JdbcContext {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
/**
* XXXXX
*/
public static void setJdbcType(String jdbcType) {
contextHolder.set(jdbcType);
}
/**
* XXXXX
*/
public static String getJdbcType() {
return (String) contextHolder.get();
}
/**
* 框架数据库
*/
public static void setMa_source(){
setJdbcType("ma_source");
}
/**
* 知识管理数据库
*/
public static void setKm_source(){
setJdbcType("km_source");
}
/**
* 知识管理数据库
*/
public static void setUm_source(){
setJdbcType("um_source");
}
/**
* 工作流引擎数据库
*/
public static void setWfe_source(){
setJdbcType("wfe_source");
}
/**
* 设置主连接
*/
public static void setMaster(){
clearJdbcType();
}
/**
* 清空连接类型
*/
public static void clearJdbcType() {
contextHolder.remove();
}
}
1.3 IGroupinfoDao.java [DAO层接口]
package com.smartcom.ma.dao;
import com.smartcom.ma.pojo.Groupinfo;
import com.smartcom.ma.util.IBaseDao;
public interface IGroupinfoDao extends IBaseDao<Groupinfo> {
}
1.4 GroupinfoDaoImpl.java [DAO层接口实现]
package com.smartcom.ma.dao.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;
import com.smartcom.ma.dao.IGroupinfoDao;
import com.smartcom.ma.pojo.Groupinfo;
import com.smartcom.util.jdbcUtil.JdbcContext;
public class GroupinfoDaoImpl implements IGroupinfoDao {
private Groupinfo groupinfo ;
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public Groupinfo getGroupinfo() {
return groupinfo;
}
public void setGroupinfo(Groupinfo groupinfo) {
this.groupinfo = groupinfo;
}
/**
* 【查询】所有部门职位信息
* @author Liyongbin [May 4, 2012 8:17:20 PM]
*/
@SuppressWarnings("unchecked")
public List<Groupinfo> findAll() throws Exception {
JdbcContext.setUm_source();//设置数据源
List<Groupinfo> groupList = new ArrayList<Groupinfo>();
Groupinfo groupinfo = null;
String sql ="select sys_id,sys_createtime,sys_creator,g_name,g_code,parentId,uuid,";
sql += "g_level,g_state,sys_type,g_type,g_desc,own_subject,remark from groupinfo ";
sql += "order by sid";
try {
List rows=jdbcTemplate.queryForList(sql);
Iterator it=rows.iterator();
while(it.hasNext()){
Map groupMap=(Map)it.next();
groupinfo = new Groupinfo();
groupinfo.setSys_id((Integer)groupMap.get("sys_id"));
groupinfo.setSys_createtime(groupMap.get("sys_createtime").toString());
groupinfo.setSys_creator((String)groupMap.get("sys_creator"));
groupinfo.setG_name((String)groupMap.get("g_name"));
groupinfo.setG_code((String)groupMap.get("g_code"));
groupinfo.setParentId((String)groupMap.get("parentId"));
groupinfo.setUuid((String)groupMap.get("uuid"));
groupinfo.setG_level((Integer)groupMap.get("g_level"));
groupinfo.setG_state((Integer)groupMap.get("g_state"));
groupinfo.setSys_type((Integer)groupMap.get("sys_type"));
groupinfo.setG_type((Integer)groupMap.get("g_type"));
groupinfo.setG_desc((String)groupMap.get("g_desc"));
groupinfo.setOwn_subject((Integer)groupMap.get("own_subject"));
groupinfo.setRemark((String)groupMap.get("remark"));
groupList.add(groupinfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return groupList;
}
/**
* 【新建】部门职位
* @author Liyongbin [May 5, 2012 8:02:24 AM]
*/
public int save(Groupinfo groupinfo) throws Exception {
Object [] args = null;
int ret = -1;
if(null==groupinfo){
return ret;
}
String sql ="insert into groupinfo (sys_id,sys_createtime,sys_creator,g_name,g_code,parentId,uuid,g_level,g_state,sys_type,g_type,g_desc,own_subject,remark)";
sql +=" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
args = new Object[13];
args[0] = groupinfo.getSys_id();
args[1] = groupinfo.getSys_createtime();
args[2] = groupinfo.getSys_creator();
args[3] = groupinfo.getG_name();
args[4] = groupinfo.getG_code();
args[5] = groupinfo.getParentId();
args[6] = groupinfo.getUuid();
args[7] = groupinfo.getG_level();
args[8] = groupinfo.getG_state();
args[9] = groupinfo.getSys_type();
args[10]= groupinfo.getG_type();
args[11]= groupinfo.getG_desc();
args[12]= groupinfo.getOwn_subject();
args[13]= groupinfo.getRemark();
ret = jdbcTemplate.update(sql, args);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ret;
}
/**
* 【删除】部门职位
* @author Liyongbin [May 19, 2012 6:58:41 AM]
*/
public int delete(int id) throws Exception {
Integer ret = -1;
String sql = "delete from groupinfo where sys_id=?";
try {
ret = jdbcTemplate.update(sql,new Object[]{id});
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ret;
}
/**
* 【查询】部门职位-->sysId
* @author Liyongbin [May 4, 2012 8:17:20 PM]
*/
@SuppressWarnings("unchecked")
public Groupinfo findById(int id) throws Exception {
JdbcContext.setUm_source();//设置数据源
Groupinfo groupinfo = null;
String sql ="select sys_id,sys_createtime,sys_creator,g_name,g_code,parentId,uuid,";
sql += "g_level,g_state,sys_type,g_type,g_desc,own_subject,remark from groupinfo";
try {
List rows=jdbcTemplate.queryForList(sql);
Iterator it=rows.iterator();
if(it.hasNext()){
Map groupMap=(Map)it.next();
groupinfo = new Groupinfo();
groupinfo.setSys_id((Integer)groupMap.get("sys_id"));
groupinfo.setSys_createtime(groupMap.get("sys_createtime").toString());
groupinfo.setSys_creator((String)groupMap.get("sys_creator"));
groupinfo.setG_name((String)groupMap.get("g_name"));
groupinfo.setG_code((String)groupMap.get("g_code"));
groupinfo.setParentId((String)groupMap.get("parentId"));
groupinfo.setUuid((String)groupMap.get("uuid"));
groupinfo.setG_level((Integer)groupMap.get("g_level"));
groupinfo.setG_state((Integer)groupMap.get("g_state"));
groupinfo.setSys_type((Integer)groupMap.get("sys_type"));
groupinfo.setG_type((Integer)groupMap.get("g_type"));
groupinfo.setG_desc((String)groupMap.get("g_desc"));
groupinfo.setOwn_subject((Integer)groupMap.get("own_subject"));
groupinfo.setRemark((String)groupMap.get("remark"));
}
} catch (Exception e) {
e.printStackTrace();
}
return groupinfo;
}
/**
* 【修改】部门职位
* @author Liyongbin [May 5, 2012 8:02:24 AM]
*/
public int update(Groupinfo groupinfo) throws Exception {
int ret = -1;
Object [] args = null;
String sql = "update groupinfo set sys_createtime=?,sys_creator=?,g_name=?,g_code=?,parentId=?,uuid=?,";
sql += "g_level=?,g_state=?,sys_type=?,g_type=?,g_desc=?,own_subject=?,remark=?";
sql += "where sys_id=? ";
try {
args = new Object[14];
args[0] = groupinfo.getSys_createtime();
args[1] = groupinfo.getSys_creator();
args[2] = groupinfo.getG_name();
args[3] = groupinfo.getG_code();
args[4] = groupinfo.getParentId();
args[5] = groupinfo.getUuid();
args[6] = groupinfo.getG_level();
args[7] = groupinfo.getG_state();
args[8] = groupinfo.getSys_type();
args[9]= groupinfo.getG_type();
args[10]= groupinfo.getG_desc();
args[11]= groupinfo.getOwn_subject();
args[12]= groupinfo.getRemark();
args[13]= groupinfo.getSys_id();
ret = jdbcTemplate.update(sql,args);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ret;
}
}
分享到:
相关推荐
实现如何用spring数据库连接,具体步骤和代码都有!
Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring...
spring的setter注入实现mysql数据库的连接 下载 看看吧
《Java Web从入门到精通》开始主要介绍Servlet、JSP、JavaBean、EL、JSTL、JDBC等Web开发基础知识,然后学习Struts、Hibernate、Spring、Ajax、JSF等开源框架,并最终学习如何整合这些开源框架进行J2EE开发,如何...
Spring实现登录(适合新手未连接数据库)
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。
项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源。 此项目就是为了解决这个问题。
spring boot简单应用,配置yml文件,实现mysql数据库的连接,对数据进行增删改查,另有登录拦截器。
JavaWeb Druid数据库连接池+Spring JDBC+BeanUtils简单实现登录功能,博客地址:https://blog.csdn.net/qq_44515800/article/details/121856426
NULL 博文链接:https://ynp.iteye.com/blog/1008178
一般druid-1.0.4.jar的配置只能实现springmvc端密码的加,本文扩展了这一限制,将加密范围扩展到用户名,甚至还可以对url和driver 进行加密
java 连接数据库实现用户登录功能 能运行成功,适合初学者借鉴学习。亲测可用, 谢谢支持。
Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册
spring boot简单应该,配置yml文件,实现mysql数据库的连接,对数据进行增删改查
终于实现了spring security 2.0 基于数据库的配置,可以连接数据库了,呵呵,由于加入了spring,jar包有些大,没有上传jar,或者新建一个工程,加入spring,然后将jar考过来或者从其他模块中考入jar, 这个工程下的...
NULL 博文链接:https://skyuck.iteye.com/blog/524561
启动 user-provider,注意修改数据库连接密码 启动 user-consumer 访问 http://localhost:8893/admin/tologin 王三 , 123 1 1 goods-provider 修改 application.yml,注意数据库配置 运行 goods-provider 中的单元...
随着Nosql分布式数据库的不断出现,各种非关系型数据库的重要性日益涌现。本项目基于Spring-data的API,实现一个Spring boot连接文档数据库mongoDB,并对数据进行管理的基本功能
主要使用Spring MVC框架,实现jdbcTemplate核心组件,利用注解,实现与数据库的连接
启动 user-provider,注意修改数据库连接密码 启动 user-consumer 访问 http://localhost:8893/admin/tologin 王三 , 123 goods-provider 修改 application.yml,注意数据库配置 运行 goods-provider 中的单元测试...