demo BaseDao随笔,hibernate框架
/**
* 增加entity
*
* @param Object对象
* @throws Exception
*/
public <T> void save(T ob) throws Exception {
this.getHibernateTemplate().save(ob);
}
/**
* 删除entity
*
* @param Object对象
* @throws Exception
*/
public <T> void delete(T ob) throws Exception {
this.getHibernateTemplate().delete(ob);
}
/**
* 删除entity:根据类,主键值获取entity,再进行删除
*
* @param entityClass
* @param idValue
* @throws Exception
*/
public <T> void delete(Class<T> entityClass, String idValue)
throws Exception {
T ob = (T) this.findById(entityClass, idValue);
this.getHibernateTemplate().delete(ob);
}
/**
* 批量删除:利用传入的参数拼写hql进行批量删除数据<br/>
* 注:仅适用于单主键entity
*
* @param entityClass
* 对应的entity类
* @param idName
* entity中的主键名称
* @param ids
* 主键值
* @throws Exception
*/
public <T> void deleteList(Class<T> entityClass, String idName,
List<String> ids) throws Exception {
Session session = null;
try {
String hql = "delete " + entityClass.getSimpleName() + " where "
+ idName + " in (";
if (ids == null || ids.size() <= 0) {
throw new Exception("batch delete id value is empty.");
}
for (int i = 0; ids != null && i < ids.size(); i++) {
if (i == ids.size() - 1) {
hql += "'" + ids.get(i) + "'";
} else {
hql += "'" + ids.get(i) + "',";
}
}
hql += ")";
session = this.getHibernateTemplate().getSessionFactory().openSession();
Query query = session.createQuery(hql);
query.executeUpdate();
} finally {
if (session != null)
session.close();
}
}
/**
* 修改entity
*
* @param Object对象
* @throws Exception
*/
public <T> void update(T ob) throws Exception {
this.getHibernateTemplate().update(ob);
}
/**
* Criteria查询全部entity
*
* @param class类
* @throws Exception
*/
public <T> List<T> findAll(Class<T> cs) throws Exception {
return this.getHibernateTemplate().loadAll(cs);
}
/**
* 根据HQL语句进行查询
*
* @param Hql语句
* @throws Exception
*/
@SuppressWarnings("unchecked")
public <T> List<T> findByHql(String hql) throws Exception {
return this.getHibernateTemplate().find(hql);
} /**
* 根据SQL语句进行查询
*
* @param Sql语句
* @throws Exception
*/
@SuppressWarnings("unchecked")
public <T> List<T> findBySql(String sql){
Session session = null;
try {
session = this.getHibernateTemplate().getSessionFactory().openSession();
Query query = session.createSQLQuery(sql);
return query.list();
} finally {
if (session != null)
session.close();
}
}
/**
* 根据id查询entity
*
* @param Class类
* @param value
* @return
*/
public <T> T findById(Class<T> cs, String value) {
return this.getHibernateTemplate().get(cs, value);
}
/**
* hql查询唯一值
*
* @param hql
* @return
*/
public Object findUniqueByHql(String hql){
Session session = null;
try {
session = this.getHibernateTemplate().getSessionFactory().openSession();
Query query = session.createQuery(hql);
return query.uniqueResult();
} finally {
if (session != null)
session.close();
}
} /**
* hql查询得到唯一的结果,如果参数requried错误hibernate将抛出类型强制转型错误
* @param <T>
* @param hql hql语句
* @param requried 返回值类型class
* @return 唯一的结果,如果没有返回null
*/
@SuppressWarnings("unchecked")
public <T> T findUniqueResult(String hql,Class<T> requried){
Session session = null;
session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
Query query = session.createQuery(hql);
Object retObj = query.uniqueResult();
if (retObj != null) {
return (T)retObj;
}
return null;
}
demo BaseDao随笔,hibernate框架的更多相关文章
- Hibernate框架入门
导读 本文主要介绍hibernate的入门,主要包括以下内容:hibernate介绍.hibernate环境搭建.hibernate简单测试.测试涉及的api详解. 一.hibernate介绍 JDB ...
- 为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?
既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的 ...
- Android数据库hibernate框架
说明 /** * YDL_Hibernate总结 <br/> * (一)支持功能: 1.自己主动建表,支持属性来自继承类:可依据注解自己主动完毕建表,而且对于继承类中的注解字段也支持自己主 ...
- Hibernate框架进阶(上篇)
导读 前面一片文章介绍了Hibernate框架的入门,主要是讲解Hibernate的环境搭建和简单测试,有兴趣的童鞋出门左转.本文在入门的基础上进行Hibernate的进阶讲解,分为上中下三篇,本篇为 ...
- Hibernate框架进阶(中篇)之多表关系
导读 Hibernate进阶主要分为上中下三篇,本文是中篇,主要讲解Hibernate框架中多表关系的实现.我们知道多表关系有一对一.一对多(多对一)和多对多三种关系.而1对1关系一般合并为一个表处理 ...
- 【SSH框架】系列之 Spring 整合 Hibernate 框架
1.SSH 三大框架整合原理 Spring 与 Struts2 的整合就是将 Action 对象交给 Spring 容器来负责创建. Spring 与 Hibernate 的整合就是将 Session ...
- hibernate框架学习笔记6:事务
MySQL的事务.JDBC事务操作: 详细见这篇文章:比较详细 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hibernate中配置隔离级别: ...
- hibernate框架学习笔记3:API详解
Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configur ...
- hibernate框架学习笔记1:搭建与测试
hibernate框架属于dao层,类似dbutils的作用,是一款ORM(对象关系映射)操作 使用hibernate框架好处是:操作数据库不需要写SQL语句,使用面向对象的方式完成 这里使用ecli ...
随机推荐
- [REPRINT]MODIFYING USER ACCOUNTS(usermod)
http://landoflinux.com/linux_usermod_command.html Append Additional Groups to an exiting account use ...
- springcloud的config
CONFIG服务端 加入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <arti ...
- Python基础教程(001)--前言
前言 人生苦短,我用Python. Python的作者,Guido von Rossum,确实是荷兰人.1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数 ...
- SQL语句之-函数
六.函数 1.文本处理函数 2.日期和时间处理函数 MySQL数据库:SELECT * FROM orders WHERE YEAR(order_date)=2012 七.汇总数据 1.AVG()函 ...
- HTML-参考手册: 按字母顺序排列
ylbtech-HTML-参考手册: 按字母顺序排列 1.返回顶部 1. 按字母顺序排列 New : HTML5新标签 标签 描述 <!--...--> 定义注释 <!DOCTYPE ...
- 25. Postman的使用
Postman下载与安装 不管是接口测试人员还是开发人员大概率下都绕不开一个工具,那就是Postman.当然可能还有一些接口测试工具,比如soapUI.Jmeter.Robot Framework 等 ...
- nginx -stream(tcp连接)反向代理配置 实现代理mysql以及文件上传
原文链接:https://blog.csdn.net/Activity_Time/article/details/95767390 1. stream模块安装 nginx默认安装的时候无法加载流str ...
- Spring Cloud配置中心客户端读取配置
微服务连接配置中心来实现外部配置的读取. 引入依赖 <dependencies> <dependency> <groupId>org.springframework ...
- linux python2.6升级2.7
一.升级 Python 2.7.10 版本 1. 准备安装包,系统是最小化安装 # 下载安装依赖的相关包[root@vip ~]# yum install vim gcc make wget -y [ ...
- CF1228F
写了一个特别麻烦的做法 首先一共有三种情况:1.删掉一个叶子,2.删掉根的一个儿子,3.其他的节点 第一种情况会有两个度数为2的节点,第二种情况没有度数为2的节点,第三种情况会有一个度数为4的节点 然 ...