快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

使用Hibernate 和 Spring 实现一个事务持久层


1.首先实现一个接口.

============================================================

package com.cqtele.tnbos;import java.util.*;public interface IUserDao { public void insertUser(userInfo user); public List findUser(String sql);}

==============================================================

2. 实现这个接口.

  这里使用 Spring的 AOP-driven HibernateTemplate 简化 Hibernate 会话的处理.

================================================================package com.cqtele.tnbos;import java.util.*;

import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;import java.io.Serializable;import org.springframework.orm.hibernate.*;//.HibernateCallback;import org.springframework.orm.hibernate.support.HibernateDaoSupport;

public class userDAO extends HibernateDaoSupport implements IUserDao{ //public List name=null; //Session session; private List list=null; public void insertUser(userInfo user) {   getHibernateTemplate().saveOrUpdate(user); } public List findUser(String sql) {  return getHibernateTemplate().find(sql);  }}

=================================================================

3.声明式治理事务.

  bean.xml

==========================================================================

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">  <property name="driverClassName">   <value>com.mysql.jdbc.Driver</value>  </property>  <property name="url">   <value>jdbc:mysql://127.0.0.1:3306/opertselect?useUnicode=true&amp;characterEncoding=GBK</value>  </property>   <property name="username">   <value>root</value>  </property>   <property name="password">   <value></value>  </property> </bean>  <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">  <property name="dataSource">   <ref local="dataSource" />  </property>  <property name="mappingResources">   <list>    <value>userInfo.hbm.xml</value>    <!--value>Fruits.hbm.xml</value-->   </list>  </property>  <property name="hibernateProperties">   <props>    <prop key="hibernate.dialect">     net.sf.hibernate.dialect.MySQLDialect    </prop>    <prop key="hibernate.show_sql">true</prop>   </props>  </property> </bean>   <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">  <property name="sessionFactory">   <ref local="sessionFactory" />  </property> </bean> <bean id="userDAO" class="com.cqtele.tnbos.userDAO">  <property name="sessionFactory">   <ref local="sessionFactory" />  </property> </bean> <bean id="DAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">  <property name="transactionManager">   <ref bean="transactionManager" />  </property>  <property name="target">   <ref local="userDAO" />  </property>  <property name="transactionAttributes">   <props>    <prop key="insert*">PROPAGATION_REQUIRED</prop>    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>   </props>  </property> </bean></beans>==============================================================================

4.使用.(这是关于一个购物车的例子.)==============================================================================

package com.cqtele.tnbos;

import java.util.*;import java.io.*;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.aopalliance.aop.Advice;

public class login{ private List list=null; private String sql="from userInfo";  public List getAllMessageList() {  try{   InputStream is = new FileInputStream("bean.xml");   XmlBeanFactory factory = new XmlBeanFactory(is);   IUserDao user = (IUserDao)factory.getBean("DAOProxy");   list = user.findUser(sql);  }catch(IOException ioe)  {   System.out.println("getAllMessageList Ocurr Error!! Message: "+ioe.getMessage());  }  return list; }}

======================================================================

5.总结

======================================================================

Hibernate 是一种先进的 OR 映射工具,而 Spring 是一个 AOP 框架和 IOC 容器。这两种技术的综合使用,使得开发人员可以编写媲美数据库厂商的代码,它可以在 J2EE 容器中运行,也可以单独运行.




返回类别: 教程
上一教程: 关于垃圾回收的一些知识
下一教程: 学习笔记-标签使用(J2SE5.0)中的元数据

您可以阅读与"使用Hibernate 和 Spring 实现一个事务持久层"相关的教程:
· 使用hibernate扩展工具hbm2java根据配置文件生成持久化对象类(2.1.2)
· 用JAVA实现一个分页类
· 一个JAVABEAN轻松实现对数据库的各种操作
· 一个在JSP下实现将动态页面转为静态的方案
· 使用JSF和MYFACES实现文件上载
    微笑服务 优质保证 索取样品