- 浏览: 1328338 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kay11:
...
JAVA生成简单的随机字符串(a-zA-Z0-9) -
zhangliguoaccp:
您好关于登录页面的验验证码这块怎么解决的?还有登录成功后,跳转 ...
JAVA,模拟HTTP登录 -
107x:
不错,谢谢!
<c:foreach 循环 map -
wenjin:
不知楼主是不还在想请叫一下我自己开的Tomcat下载一个文件C ...
Android 下载文件及写入SD卡 -
zyywgf:
JSTL c标签,fn标签,fmt标签
Spring框架中Dao支持总结:
Dao 的支持类可以有好多,如: JdbcDaoSupport , HibernateDaoSupport ,JdoDaoSupport等,下面对最常用的HibernateDaoSupport与JdbcDaoSupport做一小总结: 一、在Spring框架中实现连接数据库方式: 1、、借助类HibernateDaoSupport的简约化实现: 借助这个类必须需要HIbernate框架,用到HIbernate里提供的HibernateTemplate模板,从而进行增、删、改、查操作。 TestA.java: public class TestA extends HibernateDaoSupport{ public void test(){ HibernateTemplate template = this.getHibernateTemplate(); List list = template.find("from User"); for(int i=0;i<list.size();i++){ User u = (User)list.get(i); System.out.println(u.getUserid()+" "+u.getEmail()); } } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA t = (TestA)ctx.getBean("testa"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下:
applicationContext.xml: <bean id="testa" class="com.sun.demo.TestA"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> 2、、借助类JdbcDaoSupport的简约化实现:
借助这个类不需要HIbernate框架,也不需要有ORM的对象关联映射。但它和HibernateDaoSupport很类似,有JdbcTemplate来实现增、删、改、查操作。 TestA.java: public class TestA extends JdbcDaoSupport{ public void test(){ int n = this.getJdbcTemplate().queryForInt("select max(userid) from User"); System.out.println(n); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA ta = (TestA)ctx.getBean("testa"); ta.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml: <bean id="testa" class="com.sun.demo.TestA"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> 二、编程式事务管理、声明式事务管理中HibernateDaoSupport与JdbcDaoSupport的应用: 1、编程式事务管理: 1>、JdbcDaoSupport编程式事物管理,必须继承JdbcDaoSupport类,得到JdbcTemplate从而实现事务管理; TestA.java: public class TestA extends JdbcDaoSupport{ public void test(){ PlatformTransactionManager ptm = new DataSourceTransactionManager(this.getDataSource()); TransactionTemplate tst = new TransactionTemplate(ptm); tst.execute(new TransactionCallback(){ public Object doInTransaction(TransactionStatus status) { getJdbcTemplate().update("update User set password='1230' where userid='1001'"); getJdbcTemplate().update("update User set email='4444444444444444444444444444444444' where userid='1002'"); getJdbcTemplate().update("update User set phone='phone'"); return null; } }); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA t = (TestA)ctx.getBean("testa"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> ... ... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> <bean id="testa" class="com.sun.demo.TestA"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> 2>、HibernateDaoSupport编程式事物管理,必须继承HibernateDaoSupport类,得到HibernateTemplate从而实现事务管理; TestB.java:
public class TestB extends HibernateDaoSupport{ public void test(){ HibernateTransactionManager hm = new HibernateTransactionManager(this.getSessionFactory()); TransactionTemplate ttm = new TransactionTemplate(hm); ttm.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) { User u1 = new User(); u1.setUserid("3001"); u1.setPassword("3001"); getHibernateTemplate().save(u1); User u2 = new User(); u2.setUserid("3001"); u2.setPassword("3002"); getHibernateTemplate().save(u2); return null; } }); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestB t = (TestB)ctx.getBean("testb"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下: applicationContext.xml: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> ... ... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> <bean id="testb" class="com.sun.demo.TestB"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> 2、声明式事务管理: 1>、JdbcDaoSupport声明式样事物管理,必须继承JdbcDaoSupport类; <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
... .... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> 需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的DataSourceTransactionManager如下: <!-- 事务管理配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/> <!-- 事务管理属性 --> <property name="transactionAttributes"> <props> <prop key="updateUser">PROPAGATION_REQUIRED</prop> </props> <!-- 事务管理目标bean --> </property> <property name="target" ref="userdao"></property> </bean> <bean id="userdao" class="com.sun.demo.UserDao"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> IUserDao.java://定义接口 public interface IUserDao { public void updateUser(); } UserDao.java: public class UserDao extends JdbcDaoSupport implements IUserDao{ public void updateUser(){ this.getJdbcTemplate().update("update User set password='password1' where userid='1001'"); this.getJdbcTemplate().update("update User set password='password9999999999999999999999999999999' where userid='1002'"); } } TestA.java://调用updateUser()方法 public class{ public void test(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); IUserDao u = (IUserDao)ctx.getBean("baseTransactionProxy"); u.updateUser(); } public static void main(String[] args) { TestA t = new TestA(); t.test(); } } 2>、HibernateDaoSupport声明式事物管理,必须继承HibernateDaoSupport类; IUserDao.java://定义接口
public interface IUserDao { public void updateUser(); } UserDao.java:
public class UserDao extends HibernateDaoSupport implements IUserDao{ public void updateUser(){ User u1 = new User(); u1.setUserid("1001"); u1.setPassword("5001"); this.getHibernateTemplate().update(u1); User u2 = new User(); u2.setUserid("1003"); u2.setPassword("20015555555555555555555555555555555555555555555"); this.getHibernateTemplate().update(u2); } } 测试: public class TestA{ public void test(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); IUserDao userdao= (IUserDao)ctx.getBean("userproxy"); userdao.updateUser(); } public static void main(String[] args) { TestA t = new TestA(); t.test(); } } 需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的HibernateTransactionManager如下:
applicationContext.xml: <!-- 事务管理配置 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager"/> <!-- 事务管理属性 --> <property name="transactionAttributes"> <props> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> </props> <!-- 事务管理目标bean --> </property> </bean> <bean id="userdao" class="com.sun.demo.UserDao"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="userproxy" parent="baseTransactionProxy"> <property name="target" ref="userdao"></property> </bean> |
Spring框架中Dao支持总结:
Dao 的支持类可以有好多,如: JdbcDaoSupport , HibernateDaoSupport ,JdoDaoSupport等,下面对最常用的HibernateDaoSupport与JdbcDaoSupport做一小总结: 一、在Spring框架中实现连接数据库方式: 1、、借助类HibernateDaoSupport的简约化实现: 借助这个类必须需要HIbernate框架,用到HIbernate里提供的HibernateTemplate模板,从而进行增、删、改、查操作。 TestA.java: public class TestA extends HibernateDaoSupport{ public void test(){ HibernateTemplate template = this.getHibernateTemplate(); List list = template.find("from User"); for(int i=0;i<list.size();i++){ User u = (User)list.get(i); System.out.println(u.getUserid()+" "+u.getEmail()); } } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA t = (TestA)ctx.getBean("testa"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下:
applicationContext.xml: <bean id="testa" class="com.sun.demo.TestA"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> 2、、借助类JdbcDaoSupport的简约化实现:
借助这个类不需要HIbernate框架,也不需要有ORM的对象关联映射。但它和HibernateDaoSupport很类似,有JdbcTemplate来实现增、删、改、查操作。 TestA.java: public class TestA extends JdbcDaoSupport{ public void test(){ int n = this.getJdbcTemplate().queryForInt("select max(userid) from User"); System.out.println(n); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA ta = (TestA)ctx.getBean("testa"); ta.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml: <bean id="testa" class="com.sun.demo.TestA"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> 二、编程式事务管理、声明式事务管理中HibernateDaoSupport与JdbcDaoSupport的应用: 1、编程式事务管理: 1>、JdbcDaoSupport编程式事物管理,必须继承JdbcDaoSupport类,得到JdbcTemplate从而实现事务管理; TestA.java: public class TestA extends JdbcDaoSupport{ public void test(){ PlatformTransactionManager ptm = new DataSourceTransactionManager(this.getDataSource()); TransactionTemplate tst = new TransactionTemplate(ptm); tst.execute(new TransactionCallback(){ public Object doInTransaction(TransactionStatus status) { getJdbcTemplate().update("update User set password='1230' where userid='1001'"); getJdbcTemplate().update("update User set email='4444444444444444444444444444444444' where userid='1002'"); getJdbcTemplate().update("update User set phone='phone'"); return null; } }); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestA t = (TestA)ctx.getBean("testa"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> ... ... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> <bean id="testa" class="com.sun.demo.TestA"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> 2>、HibernateDaoSupport编程式事物管理,必须继承HibernateDaoSupport类,得到HibernateTemplate从而实现事务管理; TestB.java:
public class TestB extends HibernateDaoSupport{ public void test(){ HibernateTransactionManager hm = new HibernateTransactionManager(this.getSessionFactory()); TransactionTemplate ttm = new TransactionTemplate(hm); ttm.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) { User u1 = new User(); u1.setUserid("3001"); u1.setPassword("3001"); getHibernateTemplate().save(u1); User u2 = new User(); u2.setUserid("3001"); u2.setPassword("3002"); getHibernateTemplate().save(u2); return null; } }); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); TestB t = (TestB)ctx.getBean("testb"); t.test(); } } 需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下: applicationContext.xml: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> ... ... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> <bean id="testb" class="com.sun.demo.TestB"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> 2、声明式事务管理: 1>、JdbcDaoSupport声明式样事物管理,必须继承JdbcDaoSupport类; <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
... .... <property name="defaultAutoCommit"> <value>false</value> </property> </bean> 需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的DataSourceTransactionManager如下: <!-- 事务管理配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/> <!-- 事务管理属性 --> <property name="transactionAttributes"> <props> <prop key="updateUser">PROPAGATION_REQUIRED</prop> </props> <!-- 事务管理目标bean --> </property> <property name="target" ref="userdao"></property> </bean> <bean id="userdao" class="com.sun.demo.UserDao"> <property name="dataSource"> <ref bean="myDataSource"/> </property> </bean> IUserDao.java://定义接口 public interface IUserDao { public void updateUser(); } UserDao.java: public class UserDao extends JdbcDaoSupport implements IUserDao{ public void updateUser(){ this.getJdbcTemplate().update("update User set password='password1' where userid='1001'"); this.getJdbcTemplate().update("update User set password='password9999999999999999999999999999999' where userid='1002'"); } } TestA.java://调用updateUser()方法 public class{ public void test(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); IUserDao u = (IUserDao)ctx.getBean("baseTransactionProxy"); u.updateUser(); } public static void main(String[] args) { TestA t = new TestA(); t.test(); } } 2>、HibernateDaoSupport声明式事物管理,必须继承HibernateDaoSupport类; IUserDao.java://定义接口
public interface IUserDao { public void updateUser(); } UserDao.java:
public class UserDao extends HibernateDaoSupport implements IUserDao{ public void updateUser(){ User u1 = new User(); u1.setUserid("1001"); u1.setPassword("5001"); this.getHibernateTemplate().update(u1); User u2 = new User(); u2.setUserid("1003"); u2.setPassword("20015555555555555555555555555555555555555555555"); this.getHibernateTemplate().update(u2); } } 测试: public class TestA{ public void test(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); IUserDao userdao= (IUserDao)ctx.getBean("userproxy"); userdao.updateUser(); } public static void main(String[] args) { TestA t = new TestA(); t.test(); } } 需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的HibernateTransactionManager如下:
applicationContext.xml: <!-- 事务管理配置 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager"/> <!-- 事务管理属性 --> <property name="transactionAttributes"> <props> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> </props> <!-- 事务管理目标bean --> </property> </bean> <bean id="userdao" class="com.sun.demo.UserDao"> <property name="sessionFactory"> <ref bean="mySessionFactory"/> </property> </bean> <bean id="userproxy" parent="baseTransactionProxy"> <property name="target" ref="userdao"></property> </bean> |
Spring框架中Dao支持总结:
Dao 的支持类可以有好多,如: JdbcDaoSupport , HibernateDaoSupport ,JdoDaoSupport等,下面对最常用的HibernateDaoSupport与JdbcDaoSupport做一小总结:
一、在Spring框架中实现连接数据库方式:
1、、借助类HibernateDaoSupport的简约化实现:
借助这个类必须需要HIbernate框架,用到HIbernate里提供的HibernateTemplate模板,从而进行增、删、改、查操作。
TestA.java:
public class TestA extends HibernateDaoSupport{
public void test(){
HibernateTemplate template = this.getHibernateTemplate();
List list = template.find("from User");
for(int i=0;i<list.size();i++){
User u = (User)list.get(i);
System.out.println(u.getUserid()+" "+u.getEmail());
}
}
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
TestA t = (TestA)ctx.getBean("testa");
t.test();
}
}
需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下:
applicationContext.xml:
<bean id="testa" class="com.sun.demo.TestA">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>
2、、借助类JdbcDaoSupport的简约化实现:
借助这个类不需要HIbernate框架,也不需要有ORM的对象关联映射。但它和HibernateDaoSupport很类似,有JdbcTemplate来实现增、删、改、查操作。
TestA.java:
public class TestA extends JdbcDaoSupport{
public void test(){
int n = this.getJdbcTemplate().queryForInt("select max(userid) from User");
System.out.println(n);
}
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
TestA ta = (TestA)ctx.getBean("testa");
ta.test();
}
}
需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml:
<bean id="testa" class="com.sun.demo.TestA">
<property name="dataSource">
<ref bean="myDataSource"/>
</property>
</bean>
二、编程式事务管理、声明式事务管理中HibernateDaoSupport与JdbcDaoSupport的应用:
1、编程式事务管理:
1>、JdbcDaoSupport编程式事物管理,必须继承JdbcDaoSupport类,得到JdbcTemplate从而实现事务管理;
TestA.java:
public class TestA extends JdbcDaoSupport{
public void test(){
PlatformTransactionManager ptm = new DataSourceTransactionManager(this.getDataSource());
TransactionTemplate tst = new TransactionTemplate(ptm);
tst.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) {
getJdbcTemplate().update("update User set password='1230' where userid='1001'");
getJdbcTemplate().update("update User set email='4444444444444444444444444444444444' where userid='1002'");
getJdbcTemplate().update("update User set phone='phone'");
return null;
}
});
}
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
TestA t = (TestA)ctx.getBean("testa");
t.test();
}
}
需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入DataSource,如下:
applicationContext.xml:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
... ...
<property name="defaultAutoCommit">
<value>false</value>
</property>
</bean>
<bean id="testa" class="com.sun.demo.TestA">
<property name="dataSource">
<ref bean="myDataSource"/>
</property>
</bean>
2>、HibernateDaoSupport编程式事物管理,必须继承HibernateDaoSupport类,得到HibernateTemplate从而实现事务管理;
TestB.java:
public class TestB extends HibernateDaoSupport{
public void test(){
HibernateTransactionManager hm = new HibernateTransactionManager(this.getSessionFactory());
TransactionTemplate ttm = new TransactionTemplate(hm);
ttm.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) {
User u1 = new User();
u1.setUserid("3001");
u1.setPassword("3001");
getHibernateTemplate().save(u1);
User u2 = new User();
u2.setUserid("3001");
u2.setPassword("3002");
getHibernateTemplate().save(u2);
return null;
}
});
}
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
TestB t = (TestB)ctx.getBean("testb");
t.test();
}
}
需要在Spring的配置文件applicationContext.xml中控制反转用到连接数据库中的类是注入SessionsFactory,如下:
applicationContext.xml:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
... ...
<property name="defaultAutoCommit">
<value>false</value>
</property>
</bean>
<bean id="testb" class="com.sun.demo.TestB">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>
2、声明式事务管理:
1>、JdbcDaoSupport声明式样事物管理,必须继承JdbcDaoSupport类;
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
... ....
<property name="defaultAutoCommit">
<value>false</value>
</property>
</bean>
需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的DataSourceTransactionManager如下:
<!-- 事务管理配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="myDataSource"/>
</property>
</bean>
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<!-- 事务管理属性 -->
<property name="transactionAttributes">
<props>
<prop key="updateUser">PROPAGATION_REQUIRED</prop>
</props>
<!-- 事务管理目标bean -->
</property>
<property name="target" ref="userdao"></property>
</bean>
<bean id="userdao" class="com.sun.demo.UserDao">
<property name="dataSource">
<ref bean="myDataSource"/>
</property>
</bean>
IUserDao.java://定义接口
public interface IUserDao {
public void updateUser();
}
UserDao.java:
public class UserDao extends JdbcDaoSupport implements IUserDao{
public void updateUser(){
this.getJdbcTemplate().update("update User set password='password1' where userid='1001'");
this.getJdbcTemplate().update("update User set password='password9999999999999999999999999999999' where userid='1002'");
}
}
TestA.java://调用updateUser()方法
public class{
public void test(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
IUserDao u = (IUserDao)ctx.getBean("baseTransactionProxy");
u.updateUser();
}
public static void main(String[] args) {
TestA t = new TestA();
t.test();
}
}
2>、HibernateDaoSupport声明式事物管理,必须继承HibernateDaoSupport类;
IUserDao.java://定义接口
public interface IUserDao {
public void updateUser();
}
UserDao.java:
public class UserDao extends HibernateDaoSupport implements IUserDao{
public void updateUser(){
User u1 = new User();
u1.setUserid("1001");
u1.setPassword("5001");
this.getHibernateTemplate().update(u1);
User u2 = new User();
u2.setUserid("1003");
u2.setPassword("20015555555555555555555555555555555555555555555");
this.getHibernateTemplate().update(u2);
}
}
测试:
public class TestA{
public void test(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
IUserDao userdao= (IUserDao)ctx.getBean("userproxy");
userdao.updateUser();
}
public static void main(String[] args) {
TestA t = new TestA();
t.test();
}
}
需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的HibernateTransactionManager如下:
applicationContext.xml:
<!-- 事务管理配置 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager" ref="transactionManager"/>
<!-- 事务管理属性 -->
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
<!-- 事务管理目标bean -->
</property>
</bean>
<bean id="userdao" class="com.sun.demo.UserDao">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>
<bean id="userproxy" parent="baseTransactionProxy">
<property name="target" ref="userdao"></property>
</bean>
发表评论
-
Spring 和JFreeChart 用出现Unable to validate using XSD
2012-08-09 17:31 1763错误显示: 信息: XML validation disab ... -
web.xml不认<taglib>解决办法:
2012-07-11 15:24 955在web.xml不认<taglib>解决办法: ... -
Portal服务器,Portlet容器,Portlet 的区别
2011-08-24 17:06 1644这里所说的Portal是指JCP-JSR168规范所描述的 ... -
AMF,RTMP,RTMPT,RTMPS(转)
2011-04-28 13:10 19151. AMF AMF(是Action Message F ... -
web.xml 中的listener,filter,servlet 加载顺序
2011-04-22 13:35 1099首先,加载顺序与它们 ... -
JDOM修改XML中指定节点的内容
2011-03-21 09:45 2185UpdateXML 写道 package com.util; ... -
SSH配置多个数据源
2011-01-18 16:35 9878SSH配置多个数据源 1. 编写hibernate的数据库配 ... -
SSH中调用存储过程
2010-12-29 08:46 5566SSH中调用带返回结果集的存储过程: public clas ... -
DBCP,CP30及proxool连接池在spring+hibernate中的配置
2010-12-22 17:08 5917用spring默认的连接池性能效率不高, 如果数据库重启, 应 ... -
IP过滤DEMO
2010-11-01 15:59 1265import java.io.IOException; im ... -
FCKEditor Demo
2010-11-01 15:56 1987FCKEditor 的官方下载: http://source ... -
htmlunit带框架的简单处理测试demo
2010-07-07 14:58 3738package com.htmlunit.test; i ... -
模式在SSH中的简单举例
2010-05-17 14:37 1098闲着没事,瞎想,回想了几个简单的模式在SSH的应用。有不对的还 ... -
AspectJ入门 安装及简单使用
2010-05-15 19:20 7091一、下载安装 1. download http: ... -
org.apache.commons.lang.RandomStringUtils
2010-05-05 09:01 2013来自包:apache的commons-lang.jar包下载: ... -
spring字符集过滤器配置
2010-05-04 14:53 2628<!-- spring的字符集过滤器 --> ... -
Cannot instantiate abstract class or interface
2010-05-03 22:49 3958org.hibernate.InstantiationExce ... -
org.hibernate.hql.ast.QuerySyntaxException: ? is not mapped
2010-05-03 21:52 41142010-5-3 21:48:23 org.apache.ca ... -
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
2010-05-03 21:32 4193MyEclipse 开发 SSH 整合时 java.la ... -
JTA事务(转)
2010-04-30 16:33 9480JTA:Java Transaction API ...
相关推荐
### HibernateDaoSupport与JdbcDaoSupport详解 #### 一、概述 在软件开发过程中,特别是企业级应用开发中,数据库操作是一项重要的任务。为了简化这一过程并提高代码的可维护性和扩展性,Spring框架提供了多种支持...
1. **HibernateDaoSupport与JdbcDaoSupport**:Spring提供了这些支持类来简化DAO(数据访问对象)的实现,两者分别用于Hibernate和JDBC操作。它们提供了事务管理和数据源的便捷接入。 **三、Hibernate的查询方式** ...
Spring对DAO的支持体现在提供了一系列的基类,如HibernateDaoSupport、JdbcDaoSupport、SqlMapClientDAOSupport和JpaDaoSupport等。这些基类为不同ORM框架的使用提供了便利。其中,JdbcDaoSupport是针对JDBC操作进行...
1. **HibernateDaoSupport与JdbcDaoSupport**:`HibernateDaoSupport`是Spring提供的用于简化Hibernate使用的抽象支持类,它提供了`SessionFactory`等资源的注入,简化了Hibernate的使用过程。而`JdbcDaoSupport`则...
本文将深入探讨Spring对JDBCTemplate和HibernateTemplate的整合使用方法,以及JdbcDaoSupport和HibernateDaoSupport的支持。 **JdbcTemplate** JdbcTemplate是Spring提供的一个简单、灵活且强大的JDBC抽象层。它...
3. **自动注入与便利获取**:Spring同样提供了`HibernateDaoSupport`等支持类,这些类可以自动注入数据源和SessionFactory,并且提供了一个便捷的方法来获取`HibernateTemplate`对象。这使得开发过程更加高效。 ###...
总结来说,Spring DAO支持为开发者提供了统一的数据访问接口,无论使用JDBC还是ORM框架如Hibernate,都能保持一致的编程风格。这提高了代码的可维护性和可扩展性,使得更换持久化技术变得容易。通过利用Spring的这些...
8. **DAO(数据访问对象)支持**:Spring提供了一套通用的DAO接口和抽象类,如JdbcDaoSupport和HibernateDaoSupport,帮助开发者创建符合约定的DAO层,便于测试和扩展。 综上所述,Spring对JDBC和ORM的支持极大地...
此外,Spring还为其他持久化技术如Hibernate提供了类似的模板类`HibernateTemplate`,以及对应的DAO支持类,如`JdbcDaoSupport`和`HibernateDaoSupport`,这些支持类负责初始化模板对象并提供数据资源。 在数据源...
- 继承`HibernateDaoSupport`类:该类内部已经实现了`HibernateTemplate`的注入,可以通过`getHibernateTemplate()`方法直接获取。 ##### 3. SessionFactory `SessionFactory`是Hibernate的核心接口之一,用于...
对于Hibernate,Spring提供`HibernateTemplate`和`HibernateDaoSupport`,它们封装了Hibernate的操作,使得开发者可以专注于业务逻辑,而不是底层的SessionFactory和Session管理。例如,我们可以在DAO中注入`...
JdbcDaoSupport JdbcOperations JdbcTemplate JdbcTransactionObjectSupport JdbcUpdateAffectedIncorrectNumberOfRowsException JdbcUtils JdkDynamicAopProxy JdkRegexpMethodPointcut JdkVersion ...