准备环境就是Spring框架跟Hibernate框架的整合!
然后在Spring配置文件中配置两个数据源、这里我采用的是从c3po数据源配置:
注:配置文件中的url里面要加"&"符号的话得这样写"&"<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
org.hibernate.dialect.MySQLDialect
true
update
20
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
org.hibernate.dialect.MySQLDialect
true
update
20
PROPAGATION_REQUIRED
读的Dao层,具体代码如下:public class daoR extends HibernateDaoSupport implements IdaoR{
private Query query = null;
public List find(String sql){
query = super.getSession().createSQLQuery(sql);
return query.list();
}
}
写的Dao层,具体代码如下:public class daoW extends HibernateDaoSupport implements IdaoW{
private Query query = null;
public void save(String sql){
Transaction t = super.getSession().beginTransaction();
query = super.getSession().createSQLQuery(sql);
query.executeUpdate();
t.commit();
}
测试main方法:public class Test {
public static void main(String[] args) {
ApplicationContext context=new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/classes/applicationContext.xml");
IdaoR daor =(IdaoR) context.getBean("daoR");
IdaoW daow =(IdaoW) context.getBean("daoW");
daow.save("insert into city(sname) values('Spring双数据源')");
List list = daor.find("select * from city where sname = 'Spring双数据源'");
for (int i = 0; i
Object[] obj = (Object[])list.get(i);
System.out.println(obj[0]+" --- "+obj[1]);
}
}
}
输出:log4j:WARN No appenders could be found for logger (org.springframework.context.support.FileSystemXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
5 --- Spring双数据源