HibernateDaoSupport与JdbcDaoSupport总结.doc_第1页
HibernateDaoSupport与JdbcDaoSupport总结.doc_第2页
HibernateDaoSupport与JdbcDaoSupport总结.doc_第3页
HibernateDaoSupport与JdbcDaoSupport总结.doc_第4页
HibernateDaoSupport与JdbcDaoSupport总结.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HibernateDaoSupport与JdbcDaoSupport总结 Dao 的支持类可以有好多,如: JdbcDaoSupport , HibernateDaoSupport ,JdoDaoSupport等,下面对最常用的HibernateDaoSupport与JdbcDaoSupport做一小总结:一、在Spring框架中实现连接数据库方式:1、借助类HibernateDaoSupport的简约化实现:借助这个类必须需要HIbernate框架,用到HIbernate里提供的HibernateTemplate模板,从而进行增、删、改、查操作。TestA.java:public class TestA extends HibernateDaoSupportpublic void test()HibernateTemplate template = this.getHibernateTemplate();List list = template.find(from User);for(int i=0;ilist.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:2、借助类JdbcDaoSupport的简约化实现:借助这个类不需要HIbernate框架,也不需要有ORM的对象关联映射。但它和HibernateDaoSupport很类似,有JdbcTemplate来实现增、删、改、查操作。TestA.java:public class TestA extends JdbcDaoSupportpublic 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:二、编程式事务管理、声明式事务管理中HibernateDaoSupport与JdbcDaoSupport的应用:1、编程式事务管理:1、JdbcDaoSupport编程式事物管理,必须继承JdbcDaoSupport类,得到JdbcTemplate从而实现事务管理;TestA.java:public class TestA extends JdbcDaoSupportpublic 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:. .false2、HibernateDaoSupport编程式事物管理,必须继承HibernateDaoSupport类,得到HibernateTemplate从而实现事务管理;TestB.java:public class TestB extends HibernateDaoSupportpublic 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:. .false2、声明式事务管理: 1、JdbcDaoSupport声明式样事物管理,必须继承JdbcDaoSupport类;. .false需要在Spring配置文件中配置声明事务处理,用JdbcDaoSupport提供的DataSourceTransactionManager如下:PROPAGATION_REQUIREDIUserDao.java:/定义接口public interface IUserDao public void updateUser();UserDao.java:public class UserDao extends JdbcDaoSupport implements IUserDaopublic 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 classpublic 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 IUserDaopublic 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 TestApublic void test()ApplicationContext ctx = new ClassPathXmlApplicationContext(applicationContext.xml);IUserDao userdao= (IUserDao)ctx.getBean(userproxy);use

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论