SSH架构BaseDao实现
package cn.itcast.dao; import java.io.Serializable;
import java.util.List; /**
* BaseDao
* @author Administrator
*
* @param <T>
*/
public interface BaseDao<T> {
/**
* 保存一个对象
*
* @param o
* @return
*/
public Serializable save(T o); /**
* 删除一个对象
*
* @param o
*/
public void delete(T o); /**
* 更新一个对象
*
* @param o
*/
public void update(T o); /**
* 保存或更新对象
*
* @param o
*/
public void saveOrUpdate(T o); /**
* 查询
*
* @param hql
* @return
*/
public List<T> find(String hql); /**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, Object[] param); /**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, List<Object> param); /**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* 查询第几页
* @param rows
* 每页显示几条记录
* @return
*/
public List<T> find(String hql, Object[] param, Integer page, Integer rows); /**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* @param rows
* @return
*/
public List<T> find(String hql, List<Object> param, Integer page, Integer rows); /**
* 获得一个对象
*
* @param c
* 对象类型
* @param id
* @return Object
*/
public T get(Class<T> c, Serializable id); /**
* 获得一个对象
*
* @param hql
* @param param
* @return Object
*/
public T get(String hql, Object[] param); /**
* 获得一个对象
*
* @param hql
* @param param
* @return
*/
public T get(String hql, List<Object> param); /**
* select count(*) from 类
*
* @param hql
* @return
*/
public Long count(String hql); /**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, Object[] param); /**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, List<Object> param); /**
* 执行HQL语句
*
* @param hql
* @return 响应数目
*/
public Integer executeHql(String hql); /**
* 执行HQL语句
*
* @param hql
* @param param
* @return 响应数目
*/
public Integer executeHql(String hql, Object[] param); /**
* 执行HQL语句
*
* @param hql
* @param param
* @return
*/
public Integer executeHql(String hql, List<Object> param); }
package cn.itcast.daoImpl; import java.io.Serializable;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import cn.itcast.dao.BaseDao; @Repository("BaseDAO")
@SuppressWarnings("all")
/**
* BaseDaoImpl
* @author Administrator
*
* @param <T>
*/
public class BaseDaoImpl<T> implements BaseDao<T> { private SessionFactory sessionFactory; public SessionFactory getSessionFactory() {
return sessionFactory;
} @Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} private Session getCurrentSession() {
return sessionFactory.getCurrentSession();
} public Serializable save(T o) {
return this.getCurrentSession().save(o);
} public void delete(T o) {
this.getCurrentSession().delete(o);
} public void update(T o) {
this.getCurrentSession().update(o);
} public void saveOrUpdate(T o) {
this.getCurrentSession().saveOrUpdate(o);
} public List<T> find(String hql) {
return this.getCurrentSession().createQuery(hql).list();
} public List<T> find(String hql, Object[] param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
q.setParameter(i, param[i]);
}
}
return q.list();
} public List<T> find(String hql, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return q.list();
} public List<T> find(String hql, Object[] param, Integer page, Integer rows) {
if (page == null || page < 1) {
page = 1;
}
if (rows == null || rows < 1) {
rows = 10;
}
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
q.setParameter(i, param[i]);
}
}
return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();
} public List<T> find(String hql, List<Object> param, Integer page,
Integer rows) {
if (page == null || page < 1) {
page = 1;
}
if (rows == null || rows < 1) {
rows = 10;
}
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();
} public T get(Class<T> c, Serializable id) {
return (T) this.getCurrentSession().get(c, id);
} public T get(String hql, Object[] param) {
List<T> l = this.find(hql, param);
if (l != null && l.size() > 0) {
return l.get(0);
} else {
return null;
}
} public T get(String hql, List<Object> param) {
List<T> l = this.find(hql, param);
if (l != null && l.size() > 0) {
return l.get(0);
} else {
return null;
}
} public Long count(String hql) {
return (Long) this.getCurrentSession().createQuery(hql).uniqueResult();
} public Long count(String hql, Object[] param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
q.setParameter(i, param[i]);
}
}
return (Long) q.uniqueResult();
} public Long count(String hql, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return (Long) q.uniqueResult();
} public Integer executeHql(String hql) {
return this.getCurrentSession().createQuery(hql).executeUpdate();
} public Integer executeHql(String hql, Object[] param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
q.setParameter(i, param[i]);
}
}
return q.executeUpdate();
} public Integer executeHql(String hql, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return q.executeUpdate();
} }
package cn.itcast.dao; import cn.itcast.entity.TEmail; /**
* EmailDao
* @author Administrator
*
*/ public interface TEmailDao {
public TEmail Login(String LoginName,String Password); public TEmail FindByEmail(String param); public Integer count(String param); public void saveOrUpdate(TEmail T); public void save(TEmail T); public void update(TEmail T); public TEmail get(Integer id);
}
package cn.itcast.daoImpl; import cn.itcast.dao.BaseDao;
import cn.itcast.dao.TEmailDao;
import cn.itcast.entity.TEmail; /**
* EmailDao实现类调用BaseDao实现EmailDao中的方法
* @author Administrator
*
*/
public class TEmailDaoImpl implements TEmailDao {
private BaseDao<TEmail> baseDao; public BaseDao<TEmail> getBaseDao() {
return baseDao;
} public void setBaseDao(BaseDao<TEmail> baseDao) {
this.baseDao = baseDao;
} public TEmail Login(String LoginName,String Password) {
String hql="From TEmail where loginName=? and password=?";
return baseDao.get(hql, new Object[]{LoginName,Password});
} public TEmail FindByEmail(String param) {
String hql="From TEmail where email=?";
return baseDao.get(hql, new Object[]{param});
} public Integer count(String param) {
String hql="Select count(*) From TEmail where email=?";
Long s=baseDao.count(hql, new Object[]{param});
return s.intValue();
} public void saveOrUpdate(TEmail T){
baseDao.saveOrUpdate(T);
} public void save(TEmail T){
baseDao.save(T);
} public void update(TEmail T){
baseDao.update(T);
} public TEmail get(Integer id) {
return baseDao.get(TEmail.class, id);
} }
SSH架构BaseDao实现的更多相关文章
- .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)
.Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构) public cl ...
- WebLogic使用SSH架构部署遇到org.hibernate.hql.internal.ast.HqlTok
其实这个问题在以前就遇到过,当时解决了,但今天在部署一个测试轻应用的时候一直没有想起来,特此记录一下. 这个问题出现在使用WebLogic(我使用的是10.3.5版本)发布SSH架构的应用.在操作数据 ...
- SSH 架构
这几天学习了 ssh 架构,中间出了好多错误,现在终于整理好了,就记录下来 ssh机构的框架构成,以及它们的作用 struts2 :这个框架主要用做控制处理的,其核心是 Contraller ,即 A ...
- ssh注解basedao简单的实现
@Repository public class BaseDao extends HibernateDaoSupport{ protected Class objectClass; protected ...
- SSH架构
说说项目架构整个变化过程吧 拿用户注册来举例: 数据库里面有一张User表 需要把注册信息存储到User表中 1. 最开始是两层架构 就是cliect + jsp + DB 就是在 ...
- SSH架构实现在线支付功能
在线支付是指卖方与卖方通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务,她为企业和个人提供了一个安全.快捷.方便的电子商务应用环境和网上资金结算工具,在线支付不仅帮助企业实 ...
- java的SSH的baseDao,巧用泛型
BaseDao接口: import java.util.List; public interface BaseDao<T,PK> { public void add(T t); publi ...
- SSH——基于BaseDao和BaseAction实现用户登录
基于BaseDao和BaseAction实现用户登录 1. 首先修改login.jsp页面,点击登录按钮,提交表单 <a onclick="document.forms ...
- 从0开始学习ssh之basedao
用于所有dao里边会有许多相同的方法,例如save,update等等.应此设计一个basedao,所有dao都继承它.这样可以省去许多工作量. basedao如下 package cn.itcast. ...
随机推荐
- debug模式开启会做哪些事(源码分析)
以往开发中不管是django框架下开发还是其它框架下开发, 只知道在开发阶段要开启debug模式, 却一直没有深究它会我们做哪些事, 今天使用tornado时偶然看到源码中写的很清楚,故写下来加深印象 ...
- The 2016 ACM-ICPC Asia Qingdao Regional Contest
A - Relic Discovery 签到 #include <cstdio> using namespace std; int T,n; long long ans=0; int ma ...
- Python 代码优化技巧(一)
Table of Contents 1. 代码优化Part1 1.1. if 判断的短路特性 1.2. join 合并字符串 1.3. while 1 和 while True 1.4. cProfi ...
- Linuxshell编程
重点回顾: 1.由于核心的内存中是受保护的区块,因此我们必须要透过“shell”将我们输入的指令与Kernel沟通,好让Kernel可以控制硬件来正确无误的工作 2.学习shell的原因主要有:文字接 ...
- Nodejs-模块化结构
1.模块(一个文件就是一个模块) 获取当前脚本所在的路径 _ _dirname 文件路径 _ _filename (1)创建模块(module1.js) const fs=require('fs'); ...
- Java JVM 内存空间解析
运行时数据区: 运行时数据区主要分五块,分别是Method Area , VM Stack , Native Method Stack , Heap , program Counter Registe ...
- Android事件分发机制浅析(3)
本文来自网易云社区 作者:孙有军 我们只看最重要的部分 1: 事件为ACTION_DOWN时,执行了cancelAndClearTouchTargets函数,该函数主要清除上一次点击传递的路径,之后执 ...
- 转载: CRichEditCtrl使用大全
richedit 常见使用问题 一.常见问题 a.可以编译,不能执行的 在需要在相应的对话框中加上InitInstance(void)函数中添加 AfxInitRichEdit(); b.升级默认的R ...
- manjaro安装anaconda出错
出错信息: ==> Creating package "anaconda"... -> Generating .PKGINFO file... -> Gene ...
- 微信小程序--问题汇总及详解之picker 增、删
<block wx:for="{{salesList}}" wx:for-index="index" wx:key="id" wx:f ...