`

spring2+struts2+hibernate3实现连接两个数据库(转载)

    博客分类:
  • java
阅读更多
jdbc.properties文件,写数据库的连接信息

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/destoon?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

sql.driverClassName=net.sourceforge.jtds.jdbc.Driver
sql.url=jdbc:jtds:sqlserver://127.0.0.1:1433/business
sql.username=sa
sql.password=sa

cpool.minPoolSize=1
cpool.maxPoolSize=5
cpool.maxIdleTime=7200
cpool.maxIdleTimeExcessConnections=18000
cpool.acquireIncrement=1

applicationContext.xml文件配置两个数据源,两个SessionFactory分别对应相应的数据源

<description>Spring公共配置</description>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath*:/jdbc.properties</value>
</list>
</property>
</bean>
<bean id="sqlDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${sql.driverClassName}" />
<property name="jdbcUrl" value="${sql.url}" />
<property name="user" value="${sql.username}" />
<property name="password" value="${sql.password}" />
<property name="autoCommitOnClose" value="true"/>
<property name="initialPoolSize" value="${cpool.minPoolSize}"/>
<property name="minPoolSize" value="${cpool.minPoolSize}"/>
<property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
<property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
<property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
<property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
</bean>


<!-- SqlServer Hibernate配置 -->
<bean id="sqlSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="sqlDataSource" />
<property name="namingStrategy">
<bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
</property>
<!-- -->
<property name="mappingLocations">
<list>
<value>classpath*:/com/search/bean/*.hbm.xml</value>
</list>
</property>

<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=true
hibernate.format_sql=false
hibernate.query.substitutions=true 1, false 0
hibernate.jdbc.batch_size=20
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.provider_configuration_file_resource_path=/ehcache-hibernate.xml
</value>
</property>

</bean>

<!-- Mysql数据源配置-->
<bean id="mysqlDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="autoCommitOnClose" value="true"/>
<property name="initialPoolSize" value="${cpool.minPoolSize}"/>
<property name="minPoolSize" value="${cpool.minPoolSize}"/>
<property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
<property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
<property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
<property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="mysqlDataSource" />
<property name="namingStrategy">
<bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
</property>
<property name="mappingLocations">
<list>
<value>classpath*:/com/search/bean/*.hbm.xml</value>
</list>
</property>

<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.show_sql=true
hibernate.format_sql=false
hibernate.query.substitutions=true 1, false 0
hibernate.jdbc.batch_size=20
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.provider_configuration_file_resource_path=/ehcache-hibernate.xml
</value>
</property>
</bean>

DAO类,提供两个sessionFactory,根据数据库关键字而连接不同的数据库

@Repository

public abstract class BaseDaoImpl<T extends Serializable> implements BaseDao<T> {

protected Logger log = LoggerFactory.getLogger(getClass());
public static final String SQLSERVER="sqlserver";
public static final String MYSQL="mysql";
protected static SessionFactory sessionFactory;

@Autowired
@Resource(name="sessionFactory")
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

public Session getSession() {
return sessionFactory.getCurrentSession();
}
protected static SessionFactory sqlSessionFactory;
@Autowired
@Resource(name="sqlSessionFactory")
public void setSqlSessionFactory(SessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
public Session getSqlSession(String database) {
if (database.equals(SQLSERVER)) {
return sqlSessionFactory.getCurrentSession();
}else if (database.equals(MYSQL)) {
return sessionFactory.getCurrentSession();
}
return null;
}
@SuppressWarnings("unchecked")
public List searchListBySQL(String sql,String database) {
return getSqlSession(database).createSQLQuery(sql).list();
}

}

DAO实现类

@Repository
public class ProductDaoImpl extends JeeCoreDaoImpl<Product> implements ProductDao {

public List getAllProducts(){
String hql="select * from table;

return searchListBySQL(hql,"mysql");
}

}

------------------------来自:向上交流社区----------------------------
分享到:
评论

相关推荐

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    Spring3+Struts2+Hibernate框架的demo

    这个"Spring3+Struts2+Hibernate框架的demo"是为初学者设计的,旨在帮助他们理解和掌握这三个组件的协同工作。 【Spring框架】 Spring是Java应用的基础架构框架,它简化了创建和管理Java对象的复杂性。Spring3是...

    spring+struts2+hibernate框架双表增删改查

    在IT行业中,Web开发是至关重要的领域,而Spring、Struts2和Hibernate是Java Web开发中的三大主流框架,它们各自负责不同的职责,协同工作可以大大提高开发效率和代码质量。本项目是一个基于这三个框架的实例,旨在...

    spring+struts2+hibernate整合实现分页

    8. **配置文件**:在项目中,我们需要配置Spring的bean定义文件、Struts2的配置文件(struts.xml)以及Hibernate的配置文件,以确保所有组件正确连接并协同工作。 9. **数据库设计**:虽然本项目未具体提及,但实现...

    spring +struts2+hibernate3整合的jar包集合

    这个"spring + struts2 + hibernate3整合的jar包集合"提供了这三个框架的核心库,以及c3p0和DBCP数据库连接池的依赖,使得开发者可以快速搭建一个完整的MVC架构应用。 Spring框架是一个全面的后端解决方案,它提供...

    struts2 spring hibernate框架技术与项目实战 光盘源码上

    在Struts2和Spring的配合下,Hibernate可以通过Spring的HibernateTemplate或JPA的EntityManager进行透明化操作,实现数据层的高效管理。 这个光盘源码上部分可能包含了项目初始化配置、Struts2的Action配置、Spring...

    Struts+Spring+Hibernate开发实例.pdf

    标题和描述中指出的文档《Struts+Spring+Hibernate开发实例.pdf》包含了关于这三个流行的Java开源框架结合使用的示例代码和相关知识点。Struts负责视图与控制器部分,Spring负责业务逻辑层及依赖注入,Hibernate负责...

    spring3.1.1+struts2.3.1+hibernate3.3.2

    在与Struts2和Hibernate集成时,Spring可以作为一个中央调度器,管理和协调其他两个框架的行为。 Struts2.3.1是Struts框架的一个经典版本,它在处理Web应用程序的请求和响应方面表现出色。Struts2的核心是Action类...

    spring+struts2+hibernate框架整合

    在实际应用中,Spring通常作为总框架,管理其他两个框架的实例,例如,Spring会创建Struts2的Action和Hibernate的SessionFactory。 在SSH整合的Demo中,可能会包含以下组件: 1. Spring配置文件(如...

    Dwr2+Struts2+Spring2.5+Hibernate3实战——用户登录注册系统

    Dwr2、Struts2、Spring2.5和Hibernate3各自扮演着关键的角色,共同实现了分层架构,确保各组件专注于自身的核心功能。 Dwr2,即Direct Web Remoting 2,是一个JavaScript到服务器端Java的远程调用框架,主要用于...

    在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架

    其中,Struts2、Spring与Hibernate作为经典的“SSH”组合(Struts-Spring-Hibernate),在Java Web开发领域占据着重要的地位。本文旨在通过一个简单的登录示例项目,详细介绍如何在Netbeans IDE环境下构建基于Struts...

    EXT+Struts1+spring2+hibernate3学籍管理系统

    EXT+Struts1+Spring2+Hibernate3学籍管理系统是一个基于Java技术的Web应用程序,用于管理教育机构的学籍信息。这个系统的核心是利用一系列成熟的框架和技术,为数据存储、业务逻辑处理和用户界面交互提供了高效且...

    11、内容管理系统(hibernate3+struts2+spring2).zip

    本项目"11、内容管理系统(hibernate3+struts2+spring2).zip"是利用Java开发的一种典型应用,核心采用了三个主流的开源框架:Hibernate3、Struts2和Spring2,它们各自在系统架构中扮演着重要的角色。 1. Hibernate3...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    第9篇为实战篇,内容为两个典型的应用系统:论坛系统(Spring+Struts+Hibernate)、宠物商店(EJB 3+JPA+Struts 2)。 《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》附1张DVD光盘,内容为《Java ...

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库)

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库) 项目描述: 框架及版本:struts2 + spring3.0 + hibernate3.3 所实现的功能说明 把两个对象存入到数据库中 1、一种方法采用XML文件映射的方式 2...

    Struts2+spring2+hibernate3整合方案

    - **编写Action**:创建`LoginAction`和`RegistAction`类,这两个类通常继承自Struts2的ActionSupport类,实现业务逻辑,并由Spring管理。 - **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),...

    Struts2+spring2+hibernate3实例源码-java源码

    这三个框架分别负责不同的职责:Struts2 提供MVC(Model-View-Controller)架构,Spring 提供依赖注入(DI)和面向切面编程(AOP),Hibernate3 则是持久化层,负责数据库操作。 Struts2 是一个强大的Web应用框架,...

Global site tag (gtag.js) - Google Analytics