




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JSP,SSH框架学习日志3,DAO层model层完成之后应该写DAO层了,DAO层的主要功能就是对数据的操作。其实DAO层也可以由Hibernate的反向工程生成,不过生成的方法不够完善,我们需要自己再添加进去。不过这样每一张表都要写重复一样的话很麻烦。我是不会告诉你我以前是用反向工程一个一个生成,然后把要添加的方法写一遍用复制粘贴然后再去一个一个改的。上课的时候赖老师教给我一个简单的方法继承。好吧,继承这个我也会用,不过有个问题就是Hibernate的操作是对Model的对象进行操作的,而不是直接对数据库进行操作,如果写一个公用类来继承的话,但是每个表的操作类的类型是不一样的,我们定义他传
2、进来的参数类型总不能有几张表就写几次吧所以说老师是万能的,他又给了我一个方法详情请看/wiki/GenericDataAccessObjectsDAO需要一个接口和一个接口的实现类。因为Spring注入的时候只能用接口注入。我给DAO层写一个公用类和接口放在了公用层里,名字分别为CommonDAO和ICommonDAO。以下是ICommonDAO的代码package com.ksxt.sys;import java.io.Serializable;import java.util.List;public interface ICommonDA
3、O<T,ID extends Serializable> public void save(T transientInstance) throws Exception; public void delete(T persistentInstance) throws Exception; public void update(T instance) th
4、rows Exception; public int updateByQuery(String hql); public T findById(ID id); public List<T> findByqQuery(String hql); public Li
5、st<T> findAll(); public List<T> queryForPage(String hql, int offset,int length);以下是CommonDAO的代码package com.ksxt.sys;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.util.List;import org.hibernate.Criter
6、ia;import org.hibernate.SessionFactory;import org.hibernate.criterion.Criterion;public abstract class CommonDAO<T,ID extends Serializable> implements ICommonDAO<T, ID> private SessionFactory sessionFactory;/加载数据库连接(使用spring实现加载) private Clas
7、s<T> persistentClass; /sessionFactory的get和set方法。 public SessionFactory getSessionFactory() return sessionFactory; public void setSessio
8、nFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory; /用构造方法处理Class<T>以下为固定模式 public CommonDAO()
9、160; this.persistentClass = (Class<T>) (ParameterizedType) getClass() .getGenericSuperclass().getActualTypeArguments()0;
10、160; public Class<T> getPersistentClass() return persistentClass; /对表的操作(增删改查) /保存 public void save(T transientInstance) thr
11、ows Exception try sessionFactory.getCurrentSession().save(transientInstance); catch (RuntimeException e)
12、0; throw e; /删除 public void delete(T persistentInstance) throws Exception
13、160; try sessionFactory.getCurrentSession().delete(persistentInstance); catch (RuntimeException e)
14、0; throw e; /更新 public void update(T instance) throws Exception
15、 try sessionFactory.getCurrentSession().saveOrUpdate(instance); catch (RuntimeException e)
16、/ TODO: handle exception throw e; /根据传进来的HQL语句更新,返回受影响行数 public int updateB
17、yQuery(String hql) int k=0; try k=sessionFactory.getCurrentSession().createQuery(hql).executeUpdate();
18、160; catch (RuntimeException e) / TODO: handle exception throw e;
19、160; return k; /根据传进来的ID进行查询 public T findById(ID id) try
20、 T instance = (T) sessionFactory.getCurrentSession().get(getPersistentClass(), id); return instance; catch (RuntimeE
21、xception e) / TODO: handle exception throw e;
22、0;/根据传进来的hql查询 public List<T> findByqQuery(String hql) try return sessionFactory.getCurrentSession().createQuery(hql).list();
23、60; catch (RuntimeException e) / TODO: handle exception throw e;
24、60; /查找所有表里的所有内容 public List<T> findAll() try return findByCriteria()
25、;/调用下面的findByCriteria方法 catch (RuntimeException e) / TODO: handle exception throw e; &
26、#160; /查找表里的所有内容并返回 protected List<T> findByCriteria(Criterion. criterion) Criteria crit = sessionFactory.getCurrentSession().createCriteria
27、( getPersistentClass(); for (Criterion c : criterion) crit.add(c);
28、160; return crit.list(); /jQuery Easyui Datagrid需要的方法,根据传进来的hql,当前页数,页面长度返回数据列 public List<T> queryForPage(String hql, int offset, int
29、length) try List<T> results=sessionFactory.getCurrentSession().createQuery(hql)
30、 .setFirstResult(offset) .setMaxResults(length)
31、60; .list(); return results; catch (RuntimeException re) throw re; 这里面的方法还不是很完全,可根据需要自行添加或删除。公用的类和接口写完了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抗癌药效对比分析-洞察及研究
- 光照优化方案-洞察及研究
- 海淀期末文数学试卷
- 广饶一中高一数学试卷
- 呼市初三联考数学试卷
- 黄冈高三开学数学试卷
- 农村职业技能培训与农村人才引进研究报告
- 海南临高小考数学试卷
- 全球化与区域化法律政策协调-洞察及研究
- 贵州江西中考数学试卷
- 统编版高中政治必修三《政治与法治》期末复习:选择题刷题练习题(含答案解析)
- 2025-2030年中国线缆设备行业市场现状供需分析及投资评估规划分析研究报告
- 儿童情商课件
- 2025年湖北荆门市交通旅游投资集团有限公司招聘笔试参考题库含答案解析
- 食品产品溯源管理制度
- 2024年辽阳职业技术学院单招职业倾向性测试题库附答案
- 护士思想政治教育
- 陕投集团招聘真题2024
- 国家开放大学汉语言文学本科《古代诗歌散文专题》期末纸质考试第三大题简答题库2025春期版
- 社交媒体在职场人际关系构建中的作用与应用研究
- 中国常规肺功能检查基层指南(2024年)
评论
0/150
提交评论