版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年山东土地城乡融合发展集团限公司招聘16人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东乳山市属事业单位招聘人员(综合类)(五)管理单位笔试遴选500模拟题附带答案详解
- 2025年宿州市第一人民医院紧急招考聘用计算机中心软件开发技术人员管理单位笔试遴选500模拟题附带答案详解
- 2025年宣城市宣州区检察院警示教育基地招考管理单位笔试遴选500模拟题附带答案详解
- 2025年宜昌三峡大老岭自然保护区管理局招聘【2人】管理单位笔试遴选500模拟题附带答案详解
- 2025年宏泰集团所属湖北省资产管理限公司公开招聘9人管理单位笔试遴选500模拟题附带答案详解
- 2025年安徽黄山市黟县事业单位招聘33人历年管理单位笔试遴选500模拟题附带答案详解
- 2025年安徽马鞍山市雨山区区属事业单位招聘拟聘用人员历年管理单位笔试遴选500模拟题附带答案详解
- 2024-2030年砷化合物搬迁改造项目可行性研究报告
- 2024-2030年撰写:中国碳纤维电暖器行业发展趋势及竞争调研分析报告
- 一年级美术(上册)课件-《认识美术工具》教学课件
- GB∕T 32218-2015 真空技术 真空系统漏率测试方法
- 医院建筑设计重点、难点分析及应对措施
- 大坝枢纽工程截流施工方案
- 行政强制法讲座-PPT课件
- 风冷螺杆热泵机组招标技术要求
- 火力发电厂典型事故案例汇编
- (完整版)弱电工程安全技术交底
- 盘点票表格模板
- 报价单模板 Microsoft Excel 工作表
- 国家住宅装饰装修工程施工规范标准
评论
0/150
提交评论