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 ...
随机推荐
- 1.什么是微信小程序
微信小程序,简称CX,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用.也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题. 应用将无处 ...
- Temporarily disable Ceph scrubbing to resolve high IO load
https://blog.dachary.org/2014/08/02/temporarily-disable-ceph-scrubbing-to-resolve-high-io-load/ In a ...
- PHP dir() 函数
使用 dir() 函数: <?php$d = dir(getcwd()); echo "Handle: " . $d->handle . "<br> ...
- 【LeetCode 37】解数独
题目链接 [题解] 回溯法搞一下. 用set和数组下标判重. [代码] class Solution { public: set<int> myset[9]; int hang[9][10 ...
- 【Flutter学习】之Widget数据共享之InheritedWidget
一,概述 业务开发中经常会碰到这样的情况,多个Widget需要同步同一份全局数据,比如点赞数.评论数.夜间模式等等.在安卓中,一般的实现方式是观察者模式,需要开发者自行实现并维护观察者的列表.在flu ...
- 绝不划水队Alpha冲刺阶段博客目录
绝不划水队Alpha冲刺阶段博客目录 一.Scrum Meeting 第六周会议记录 第七周会议记录 二.测试报告 alpha阶段测试报告 三.习得的软工原理/方法/技能? 李浩杰: (1)一开始分工 ...
- [NOIP模拟测试34]反思+题解
不要陷入思维定势,如果长时间没有突破就要考虑更改大方向. 不要把简单问题复杂化. 做完的题就先放下,不管能拿多少分.不能过一段时间就回来调一下. $Solutions:$ A.次芝麻 因为$n+m$始 ...
- 【Java架构:基础技术】一篇文章搞掂:MyBatis-Plus
前言 Mybatis:一个流行的半自动ORM框架. Mybatis-Plus:一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发.提高效率而生. 本文使用的版本:myb ...
- djanjo中url路由匹配规则是啥意思
一,django路由匹配规则的本质是通过正则表达式对用户的url进行匹配. 1,r 是正则表达式中防止转义的符号,例如在python/n代表换行,加上r就不换行了. 2,$ 正则表达式中表示以什么什么 ...
- js判断是否pc端
function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ['Android', 'iPhone', 'Symbi ...