Hibernate之DAO操作基础类
来源:互联网 发布:电脑图文编辑软件 编辑:程序博客网 时间:2024/05/16 10:17
/**
* DAO基础操作类
*/
package com.hs.ask.dao.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.hs.ask.util.Pager;
public abstract class BaseDaoImpl extends HibernateDaoSupport {
protected static ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
protected static SessionFactory sessionFactory = (SessionFactory) applicationContext.getBean("sessionFactory");
Session session = null;
Transaction tran = null;
/**
* 新增对象
* @param object
*/
public Object saveObject(Object object) {
try{
session = sessionFactory.openSession();
tran = session.beginTransaction();
session.save(object);
tran.commit();
return object;
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 修改对象
*/
public void updateObject(Object object) {
try{
session = sessionFactory.openSession();
tran = session.beginTransaction();
session.saveOrUpdate(object);
tran.commit();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 用语句修改对象
*/
public void updateObjectByQuery(final String queryString,
final Object[] parameters) {
try{
session = sessionFactory.openSession();
tran = session.beginTransaction();
Query query = session.createQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
query.executeUpdate();
tran.commit();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 删除对象
*/
public void deleteObject(Object object) {
try{
session = sessionFactory.openSession();
tran = session.beginTransaction();
session.delete(object);
tran.commit();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 根据类型和ID取得一个对象
*/
public Object get(Class clazz,Serializable id){
try{
session = sessionFactory.openSession();
return session.get(clazz, id);
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 根据查询语句获得一个对象
*/
public Object get(final String queryString, final Object[] parameters){
try{
session = sessionFactory.openSession();
tran = session.beginTransaction();
Query query = session.createQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
return query.uniqueResult();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 不带参数查询列表(HQL)
*/
public List find(final String queryString){
try{
session = sessionFactory.openSession();
Query query = session.createQuery(queryString);
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 带参数查询列表(HQL)
*/
public List find(final String queryString, final Object[] parameters){
try{
session = sessionFactory.openSession();
Query query = session.createQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 不带参数查询列表(SQL)
*/
public List findBySQL(final String queryString){
try{
session = sessionFactory.openSession();
Query query = session.createSQLQuery(queryString);
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 带参数查询列表(SQL)
*/
public List findBySQL(final String queryString, final Object[] parameters){
try{
session = sessionFactory.openSession();
Query query = session.createSQLQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 不带参数查询列表(HQL)
*/
public List findPage(final String queryString,Pager pager){
try{
session = sessionFactory.openSession();
Query query = session.createQuery(queryString);
int count = query.list().size();
pager.setTotalCount(count);
query.setFirstResult((pager.getCurrentPage() - 1) * pager.getPageLimit());
query.setMaxResults(pager.getPageLimit());
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 带参数查询列表(HQL)
*/
public List findPage(final String queryString, final Object[] parameters,Pager pager){
try{
session = sessionFactory.openSession();
Query query = session.createQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
int count = query.list().size();
pager.setTotalCount(count);
query.setFirstResult((pager.getCurrentPage() - 1) * pager.getPageLimit());
query.setMaxResults(pager.getPageLimit());
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 不带参数查询列表(SQL)
*/
public List findPageBySQL(final String queryString,Pager pager){
try{
session = sessionFactory.openSession();
Query query = session.createSQLQuery(queryString);
int count = query.list().size();
pager.setTotalCount(count);
query.setFirstResult((pager.getCurrentPage() - 1) * pager.getPageLimit());
query.setMaxResults(pager.getPageLimit());
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
/**
* 带参数查询列表(SQL)
*/
public List findPageBySQL(final String queryString, final Object[] parameters,Pager pager){
try{
session = sessionFactory.openSession();
Query query = session.createSQLQuery(queryString);
for(int i=0,len=parameters.length;i<len;i++){
query.setParameter(i, parameters[i]);
}
int count = query.list().size();
pager.setTotalCount(count);
query.setFirstResult((pager.getCurrentPage() - 1) * pager.getPageLimit());
query.setMaxResults(pager.getPageLimit());
return query.list();
}catch (HibernateException e) {
throw new HibernateException(e);
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
}
}
- Hibernate之DAO操作基础类
- hibernate 基础dao类实现
- hibernate 基础dao类实现2
- hibernate基础DAO
- Hibernate之DAO
- java hibernate 基础dao basedao
- Hibernate 数据库操作 DAO 实例
- Hibernate操作数据库之基础操作
- Hibernate封装通用数据操作基类DAO
- Hibernate封装通用数据操作基类DAO
- 小型Java Web项目之DAO操作标准、DAO接口真实实现类、DAO代理实现类、DAO工厂
- Hibernate基础之单表操作
- 使用模板模式简化DAO操作Hibernate
- 使用模板模式简化DAO操作Hibernate
- 用模板模式简化DAO操作Hibernate
- 用模板模式简化DAO操作Hibernate
- 使用模板模式简化DAO操作Hibernate
- 使用模板模式简化DAO操作Hibernate
- 电子工程师必备网站
- ffmpeg常用参数一览表
- ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例
- Java开发者需坚守的十大基本准则
- c# 数组(Array),ArrayList ,List 的区别与联系
- Hibernate之DAO操作基础类
- failed to create the java virtual machine报错的解决方法
- assemble instrument of avr controller
- windows平台下编译curl支持https
- JS无缝滚动代码
- 函数指针与指针函数
- RBAC(基于角色的访问控制)扫盲贴
- linux上进程状态查询
- Window.ShowModalDialog使用手册 js弹出框 不同于open此弹出窗口不会被阻止