版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年北京对外经济贸易大学后勤处非事业编制人员招聘备考题库及完整答案详解1套
- 惠州市第一妇幼保健院2025年公开招聘第二批员额制卫生专业技术人员备考题库完整答案详解
- 淄博市市立医院2026年医学影像科(放射)、皮肤科、核医学科业务骨干招聘备考题库及1套参考答案详解
- 2025年宁麓置地(宁波)有限公司招聘备考题库完整答案详解
- 2025年江阴市云亭中学教师招聘备考题库及1套完整答案详解
- 2025年滨州医学院烟台附属医院高级专业技术岗位公开招聘人员备考题库及答案详解1套
- 2025年中国对外贸易中心集团有限公司招聘84人备考题库及一套完整答案详解
- 2025年天津市工会社会工作者招聘41人备考题库及答案详解一套
- 2025年广西众云大数据科技有限公司招聘备考题库及一套答案详解
- 2025年传染病预防控制所国家致病菌识别网中心实验室外聘人员公开招聘备考题库及参考答案详解一套
- JT-T-1201-2018带式收油机行业标准
- DZ∕T 0207-2020 矿产地质勘查规范 硅质原料类(正式版)
- 成人住院患者跌倒风险评估及预防
- (正式版)HGT 4339-2024 机械设备用涂料
- 口袋公园设计方案
- 2024年重庆水务集团招聘笔试参考题库含答案解析
- 生产委托加工合同中英文版
- 小学数学各种单位间的进率-
- 美国文化课件
- 离婚协议书电子版可打印
- 公司出纳明年个人工作计划标准模板(3篇)
评论
0/150
提交评论