SSH2框架-泛型DAO(已解决)
2009-12-03 15:53
218 查看
经过参考
https://www.hibernate.org/328.html
http://rainlife.javaeye.com/blog/69293?page=2#comments
http://www.blogjava.net/flustar/archive/2007/12/26/ssha.html
终于搞定了SSH2框架下的泛型DAO问题,下面我把代码贴上来,希望对大家有帮助
我只写了一个方法,其它的可以参照网上的源码
1、IGenericDAO
2、GenericHibernateDAO
3、IUserDAO
4、UserDAO
5、applicationContext.xml
6、user.hbm.xml
https://www.hibernate.org/328.html
http://rainlife.javaeye.com/blog/69293?page=2#comments
http://www.blogjava.net/flustar/archive/2007/12/26/ssha.html
终于搞定了SSH2框架下的泛型DAO问题,下面我把代码贴上来,希望对大家有帮助
我只写了一个方法,其它的可以参照网上的源码
1、IGenericDAO
package com.study.hibernate.dao; import java.io.Serializable; import org.springframework.dao.DataAccessException; public interface IGenericDAO<T, ID extends Serializable> { public T load(ID id) throws DataAccessException; }
2、GenericHibernateDAO
package com.study.hibernate.dao; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.dao.DataAccessException; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class GenericHibernateDAO<T, ID extends Serializable> extends HibernateDaoSupport implements IGenericDAO<T, ID> { private Log log = LogFactory.getLog(getClass()); protected Class<T> entityClass; public GenericHibernateDAO() { } @SuppressWarnings("unchecked") protected Class getEntityClass() { if (entityClass == null) { entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; log.debug("T class = " + entityClass.getName()); } return entityClass; } @SuppressWarnings("unchecked") public T load(ID id) throws DataAccessException { T load = (T) getHibernateTemplate().load(getEntityClass(), id); log.debug("T = " + load); return load; } }
3、IUserDAO
package com.study.hibernate.dao; import com.study.hibernate.beans.User; public interface IUserDAO extends IGenericDAO<User, java.lang.String>{ }
4、UserDAO
package com.study.hibernate.dao; import com.study.hibernate.beans.User; public class UserDAO extends GenericHibernateDAO<User, java.lang.String> implements IUserDAO { }
5、applicationContext.xml
<!-- config transaction interceptor --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <!-- define BeanNameAutoProxyCreator --> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>userService</value> </list> </property> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean> <bean id="GenericHibernateDAO" class="com.study.hibernate.dao.GenericHibernateDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="UserDAO" class="com.study.hibernate.dao.UserDAO" parent="GenericHibernateDAO"> </bean>
6、user.hbm.xml
<hibernate-mapping> <class name="com.study.hibernate.beans.User" table="user" lazy="false"> <id name="fchrId" type="java.lang.String"> <column name="fchrId" length="32" /> <generator class="uuid.hex" /> </id> </class> </hibernate-mapping>
相关文章推荐
- SSH2框架--使用泛型DAO,JUnit测试时,如何使用事务,使用操作不真正的提交的数据库中
- 基于ssh2架构的struts2验证框架错误解决
- SSH2的泛型DAO
- SSH2框架的jsp中文乱码问题解决方法
- SSH2框架访问WEB应用异常解决之:AnnotationProcessor
- 基于Hibernate框架的泛型DAO层---SwiftDAO
- 解决SSh中公共Dao使用泛型且Dao层无其他Dao,Service直接继承公共Dao,部署到tomcat可能会出现的错误。
- 基于hibernate的泛型Dao框架
- yii2框架中(解压包安装的框架),composer安装yiisoft/yii2-jui出现错误,问题解决
- SSH2框架搭建 和 配置文件详解
- vs2010C#项目-英文版打包中文框架出错的解决办法
- SSH2出现的错误解决方法
- 改进版的hibernate泛型dao(依赖spring)
- RF框架-一个简单的脚本实现及元素定位不到问题的解决
- 使用Volley框架异步加载图片+ListView图片加载错位解决
- yii DAO yii框架增删改查 分页 验证码 框架自带表单
- 详解Android主流框架不可或缺的基石 反射,注解,泛型,类加载器
- 简单泛型DAO的实现
- 完美解决jQuery符号$与其他javascript 库、框架冲突的问题
- 基于javaSSH2框架增删改查代码(前端extjs)