`
Java_lilin
  • 浏览: 1714 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate 的basedao

阅读更多
package com.dao;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.entity.NewsTypeInfo;
import com.entity.PageModel;
import com.util.HibernateSessionFactory;

/**
* dao层基类
* @author Think
*
*/
public class BaseDao {

/**
* 添加对象
* @param 对象实例
* @return 对象的插入数据后的id  --失败 返回null
*/
public Serializable addObject(Object obj){
    Session session = null;
        Transaction tx = null;
        Serializable idkey = null;
        try {
            session =HibernateSessionFactory.getSession();
            tx = session.beginTransaction();
            idkey=  session.save(obj);
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
            return idkey;
        }
}

/**
*
* @param 类
* @param 主键列
* @return
*/
public Object getObject(Class c ,Serializable id){
Session session =HibernateSessionFactory.getSession();
Object obj= session.get(c, id);
if(session!=null){session.close();}
  return obj;
}

/**
* 修改对象
* @param 对象
* @return true or false
*/
public boolean updateObject(Object obj){
    Session session = null;
        Transaction tx = null;
        boolean isok = true;
        try {
            session =HibernateSessionFactory.getSession();
            tx = session.beginTransaction();
            session.update(obj);
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            isok = false;
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
            return isok;
        }
       }
/**
* 删除对象
* @param 对象
* @return true or false
*/
public boolean deleteObject(Object obj){
    Session session = null;
        Transaction tx = null;
        boolean isok = true;
        try {
            session =HibernateSessionFactory.getSession();
            tx = session.beginTransaction(); 
            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            isok = false;
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
            return isok;
        }
       }
/**
* hql查询 
* @param hql语句
* @param 参数
* @return
*/
public List getObjectListByHQL(String hql,Object ... params){

  Session  session =HibernateSessionFactory.getSession();
  Query query = session.createQuery(hql);
  if(params!=null && params.length>0){
for(int i=0;i<params.length;i++){
query.setString(i, params[i]+"");
}
  } 
  List list =  query.list();
  if(session!=null){session.close();}
  return list;
}

/**
* 限制返回行数的查询
* @param hql语句
* @param 返回大小
* @param 参数
* @return
*/
public List queryObjectListSizeByHQL(String hql,int size,Object ... params){

Session  session =HibernateSessionFactory.getSession();
  Query query = session.createQuery(hql);
  System.out.println( "................................"+params );
  if(params!=null && params.length>0){
for(int i=0;i<params.length;i++){
query.setString(i, params[i]+"");
}
  } 
  query.setMaxResults(size); 
  List list =  query.list();
  if(session!=null){session.close();}
  return list;
}
   
/**
* 分页的数据查询
* @param 当前页
* @param 每页显示的数据
* @param 查询语句
* @param 语句的参数
* @return
*/
public PageModel queryPageModel(int pageno,int rowsize,String hql,Object...params){
PageModel pm = new PageModel();
pm.setRowsize(rowsize);  
pm.setPagenow(pageno);
pm.setList_info(hql,params);  
return pm;
}



}
分享到:
评论

相关推荐

    hibernate basedao(泛型版本)

    在Java的持久层框架Hibernate中,BaseDAO(基础数据访问对象)是常用的设计模式,用于封装对数据库的基本操作。在给定的“hibernate basedao(泛型版本)”中,开发人员通过引入泛型进一步提高了代码的复用性和灵活...

    hibernate basedao

    涵盖通过hibernate进行数据库操作的通用方法

    基于hibernate的baseDao

    **基于Hibernate的BaseDAO** 在Java企业级开发中,数据访问层(DAO,Data Access Object)是连接业务逻辑层和数据库的重要桥梁。BaseDAO是一种通用的设计模式,它封装了Hibernate框架的基本操作,使得业务逻辑层...

    hibernate BASEDAO

    在Java的持久化框架Hibernate中,BaseDAO(Base Data Access Object)是一种常见的设计模式,用于封装数据库操作,提供一套标准的方法来实现CRUD(Create、Read、Update、Delete)操作。这种模式使得业务层可以更加...

    hibernate>>BaseDAO

    现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是用来解耦业务逻辑层和数据存储层的关键工具。`BaseDAO`通常包含一些通用的数据库操作方法,如增删改查(CRUD),事务管理,以及...

    spring和hibernate集成后,通用的basedao

    在IT行业中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,它们的集成为开发者提供了强大的数据访问能力。在这个名为...

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    本示例主要介绍如何实现Spring Boot 2.0多数据源的集成,并结合Hibernate进行配置,特别是在DAO层使用`HibernateDaoSupport`进行操作,而非使用JPA(Java Persistence API)。 首先,让我们了解Spring Boot 2.0的...

    SpringMvc(4.0)+hibernate(4.0)

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发人员将数据库操作与 Java 对象进行解耦,简化了数据库编程。在 Hibernate 4.0 版本中,改进了对 JPA 2.0 的支持,引入了更灵活的查询语言 HQL 和 ...

    Hibernate底层数据库操作函数BaseDao+具体实例

    `BaseDao`是常见的一种设计模式,用于封装Hibernate的基本数据库操作,它为业务层提供了一种统一的接口,方便进行CRUD(创建、读取、更新、删除)操作。在这个主题中,我们将深入探讨`BaseDao`的设计与实现,以及...

    基于hibernate封装的BaseDao

    基于hibernate封装的BaseDao,有完整的增删改查,分页,执行hql sql 方法 约 20个方法,详情地址 https://blog.csdn.net/qq_41861261/article/details/85595872

    spring4+hibernate4 封装BaseDao增删改查以及分页,,支持jdk1.7,不支持jdk1.8

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别专注于依赖注入和对象关系映射。本项目结合了Spring 4和Hibernate 4,旨在提供一个基础的数据访问层(DAO)实现,包括基本的CRUD操作(创建、读取、...

    Spring整合hibernate(4)之BaseDao的编写示例

    Spring整合hibernate(4)之BaseDao的编写示例 说明:因为我们在实际编码中会编写一些重复的数据库操作方法CRUD,每个类都写一次感觉很繁琐,因此可以考虑考虑把所有公共的方法都写在BaseDao中,这个时候,让所有的...

    basedao_basedao数据库_

    - 可能的ORM框架,如Hibernate或MyBatis的集成(虽然描述中没有明确提及) - Maven或Gradle项目管理工具的使用 - 面向对象编程,尤其是抽象类和接口的设计 在实际开发中,使用BaseDao可以大大提高开发效率,但同时...

    ssh+baseDao实现分页

    在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,而BaseDao是常用于数据访问层的一个基类设计。本话题主要围绕如何利用SSH框架结合BaseDao实现分页功能来展开。 首先,让我们了解...

    SpringBoot_BaseDao.zip

    SpringBoot集成了多种数据访问技术,如JDBC、MyBatis、Hibernate等,使得我们可以轻松配置和使用。在SpringBoot中,通过@Configuration和@Bean注解,我们可以配置DataSource(数据源)和JdbcTemplate或JPA实体,来...

    SSH集成查询分页处理BaseDao

    BaseDao中可能使用了SessionFactory创建Session,然后通过Session执行HQL(Hibernate Query Language)或者原生SQL进行分页查询。 3. **简单分页**:在BaseDao中实现的分页处理应该是简洁且易于理解的。通常,这会...

    BaseDao的封装

    这些方法的实现可以使用模板方法设计模式,将一部分通用逻辑放在`BaseDao`中,而具体的SQL语句或者HQL(Hibernate Query Language)则由子类提供。 在实际项目中,`BaseDao`的实现往往需要结合事务管理。例如,当一...

    java BaseDao

    以上代码仅为示例,实际应用中,BaseDao通常会使用ORM框架如Hibernate或MyBatis,它们提供了更高级别的抽象,能够自动处理SQL生成和结果映射,使代码更加简洁且易于维护。 **总结** BaseDao是Java开发中非常实用的...

    Spring声明式事务及BaseDao完整版

    3. **实现方式**:BaseDao通常基于JDBC或ORM框架(如Hibernate、MyBatis)实现,提供基本的SQL执行和结果映射功能。 4. **扩展性**:子类可以继承BaseDao,并根据业务需求添加特定的数据库操作方法。 四、Spring...

    企业通用BaseDao方法集

    为了实现这些功能,BaseDao一般会依赖于某种持久层框架,如Hibernate、MyBatis或JPA。这些框架提供了与数据库交互的能力,并且简化了事务控制和结果映射等操作。 总结来说,"企业通用BaseDao方法集"是企业级开发中...

Global site tag (gtag.js) - Google Analytics