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 的 BeanFactory 来获取数据库连接,然后执行数据库操作语句,并将结果封装到 SpringtoResultSetInfoBean 对象中。 本文详细讲解了如何使用 Spring 连接数据库,包括创建数据库、配置 ...
本文将详细探讨"Spring数据库连接等配置加密"这一主题。 首先,我们来看`dbconfig.properties`文件,这是Spring项目中常见的用于存储数据库连接配置的文件。通常,这个文件会包含如下内容: ``` # 数据库连接配置 ...
同时,项目结构应包含Spring的配置文件(如`applicationContext.xml`)和数据库连接相关的bean定义。此外,确保数据库服务器运行正常,连接参数正确无误。 总结来说,这个"spring连接数据库实例"主要涵盖了Spring...
- `BasicDataSource`类来自Apache Commons DBCP库,它是一个连接池实现,可以高效管理数据库连接。`<bean>`标签定义了一个名为`dataSource`的bean,它的类型是`org.apache.commons.dbcp.BasicDataSource`。 - `...
在Spring框架中,数据库连接池是实现高效数据库操作的关键组件,它允许应用程序重复使用已建立的数据库连接,而不是每次都创建新的连接,从而提高了性能和资源利用率。 在Java中,常见的数据库连接池工具有C3P0、...
为了在SpringCloud服务中使用这个数据库连接,你可能还需要配置Ribbon或Feign客户端,以在微服务间进行数据交互。Ribbon是客户端负载均衡器,Feign是一个声明式HTTP客户端。配置它们可以使你的服务通过服务名而不是...
在Spring框架中,整合数据库连接是开发Web应用的常见任务,它提供了多种方式来管理数据库连接池,确保高效、稳定的数据交互。以下是Spring整合数据库连接的三种主要方式:DBCP、C3P0和Proxool,以及它们各自的特点和...
总的来说,"spring多数据库"项目提供了一个标准的Spring项目模板,帮助开发者理解和实践如何在Spring中实现多数据库的切换查询,从而提升应用的灵活性和扩展性。通过合理配置和编程,可以有效地管理和操作来自多个...
Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring连接图存数据库Neo4j实现增删改查 Spring...
在Spring中,我们可以配置多个DataSource bean,每个bean对应一个数据库连接。Spring的AbstractRoutingDataSource类可以用来实现动态数据源切换,它可以根据一定的规则(如事务上下文、请求参数等)选择使用哪个数据...
在Spring MVC应用中,数据库连接池的管理是一个关键部分,其中Druid是一个广泛使用的高性能连接池组件。在标准配置下,Druid允许开发者通过配置文件(如`druid.properties`或`application.properties`)来设置数据库...
至于`dade02`这个文件,由于没有明确的文件类型,可能是一个数据库连接配置文件,也可能包含其他数据,具体用途需要根据实际项目需求来确定。 最后,为了在代码中动态选择数据源,我们可以使用Spring的`...
使用以上配置后,可以使用 Spring Boot 的测试工具来测试数据库连接是否正常。例如,可以使用 Spring Boot 的 `JdbcTemplate` 来执行一个简单的查询操作: ```java @RestController public class ...
首先,我们要理解Spring如何支持多数据库连接。Spring通过DataSource接口来管理数据库连接,它提供了获取和管理数据库连接的方法。在实际应用中,我们通常会使用如Apache Commons DBCP或HikariCP这样的连接池实现。...
1. **数据源配置**:Spring允许配置数据源,这样就封装了数据库连接的基本信息,并进行了优化处理。这种方式不仅可以提高性能,还能够减少代码量。 2. **模板模式**:Spring JDBC提供了`JdbcTemplate`类,这是一个...
3. **DataSource**: 在配置中,你需要指定用于存储用户信息的数据库连接。这通常是一个`BasicDataSource` bean,其中包含数据库URL、用户名和密码等信息。 4. **AuthenticationManager**: 这是Spring Security的...
首先,Spring.Net的核心特性之一是依赖注入,这使得我们能够轻松地更换数据库连接配置。通过配置Spring的ApplicationContext,我们可以定义多个数据源,并根据需要注入到相应的服务或组件中。例如,可以在XML配置...
《Java Web从入门到精通》开始主要介绍Servlet、JSP、JavaBean、EL、JSTL、JDBC等Web开发基础知识,然后学习Struts、Hibernate、Spring、Ajax、JSF等开源框架,并最终学习如何整合这些开源框架进行J2EE开发,如何...
这里,我们使用了`@Value`注解从应用的配置文件(如application.properties或application.yml)中读取数据库连接信息。 然后,我们需要创建一个DAO接口,该接口定义了与数据库交互的操作,例如: ```java public ...