package com.happybolin.mytest;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class AbstractDao {
private Session session;
private Transaction tr;
private Log log = LogFactory.getLog(AbstractDao.class);
public AbstractDao() {
HibernateUtil.buildSessionFactory();
}
protected void saveorUpdate(Object obj) {
try {
startOperation();
session.saveOrUpdate(obj);
tr.commit();
} catch (HibernateException e) {
log.error("saveorUpdate is fault");
} finally {
HibernateUtil.close(session);
}
}
protected void delete(Object obj) {
try {
startOperation();
session.delete(obj);
tr.commit();
} catch (HibernateException e) {
log.error("could not delete ");
} finally {
HibernateUtil.close(session);
}
}
protected Object find(Class clazz, Long id) {
Object obj = null;
try {
startOperation();
obj = session.load(clazz, id);
} catch (HibernateException e) {
log.error("find is fault");
} finally {
HibernateUtil.close(session);
}
return obj;
}
protected List findAll(Class clazz) {
List objects = null;
try {
startOperation();
Query query = session.createQuery("from clazz.getName");
objects = query.list();
tr.commit();
} catch (HibernateException e) {
log.error("findAll is fault");
} finally {
HibernateUtil.close(session);
}
return objects;
}
protected void startOperation() throws HibernateException {
session = HibernateUtil.openSession();
tr = session.beginTransaction();
}
}
分享到:
相关推荐
在给出的文件列表中,我们可以看到几个关键文件: 1. `basedao.iml`: 这是IntelliJ IDEA项目文件,包含了项目的模块配置信息。 2. `pom.xml`: Maven项目配置文件,定义了项目的依赖、构建设置等。 - 在这个项目中...
项目结构通常包含以下几个部分: 1. src/main/java:存放 Java 源代码,包括 Model(实体类)、Service(服务层)、Controller(控制器)等。 2. src/main/resources:存放配置文件,如 applicationContext.xml...
这个方法接受当前页码和每页大小作为参数,返回对应页码的数据集合。 2. **实现分页逻辑**:在BaseDao的实现类中,我们需要根据Hibernate的Criteria或者HQL来构造分页查询。使用`setFirstResult()`设置查询起始位置...
在示例代码中,BaseDao接口定义了几个基础的方法,比如`getAll()`用于获取指定类的所有实例,`getById()`用于根据主键查询特定的实例等。这些方法为后续具体的DAO实现提供了一个统一的调用入口。 通过上述步骤,...
以下是对hibernate中几种对象关系模型的详细解释: 1. **依赖**: 在Java中,依赖关系可以通过类的实例方法参数来体现,如示例中的`Person`类的`life`方法接受`Sun`对象作为参数。这种关系表明一个类的方法或行为...
Spring与Hibernate的整合主要体现在以下几个方面: 1. **事务管理**:Spring提供了一种声明式事务管理方式,只需在Service层的方法上添加@Transactional注解,就能自动处理事务的开启、提交、回滚。这种方式极大地...
ssh框架搭建step by step (springMVC + spring 5.0.4 + hibernate 5.0.12) 好久不弄web了, 周末心血来潮, 使用较新...# 项目主要描述ssh的搭建步骤, 前端仅仅是几个简单的展示页面; 如有疑问请留言, 欢迎指教交流!
可是Mybatis就可怜了,没有上面那些东西,在网上找,也有一些类似jpa的产品出现,但是总感觉不好用,所以干脆自己搞一个,不就写几个文件吗。 说明:生成的文件包括 实体:为每张表生成一个对应的实体 QueryModel...
这个组合在过去的几年里被广泛用于构建企业级应用,特别是那些需要复杂数据管理和用户交互的系统。在本例中,“SSH 的简单继承”指的是一个基于SSH框架的学生信息管理系统,该系统允许对学生的数据进行基本操作,如...
在以上几个层次中都会用到 PO,如在 web 层中会用来接受前台表单提交的数据,在 DAO 层中会利用 hibernate 对 PO 进行数据操作。由于在项目中用到了 hibernate,因此在生成 PO 后,会进行 hibernate 的配置。 本 ...
最近需要用到Extjs4做一个管理系统,搞了一天,搭起来一个Extjs4.1的MVC框架,上传到...里面包含了Struts2+Spring3+hibernate3+注解的框架,不过我是测试用的,BaseDao中只写了几个有用的函数,其它的需要自己补充。
在Java开发中,给定的文件内容涉及到几个关键知识点,包括Spring MVC、Hibernate、Struts1以及字符编码处理。以下是这些知识点的详细解释: 1. **Struts1框架**: - `taglib`指令:在Java Web开发中,Struts1框架...
这个功能涵盖了几个关键点:图书分类展示、分页显示、以及图书搜索。下面将详细阐述这些知识点。 1. **Struts2框架**: Struts2是一个用于构建企业级Web应用程序的MVC框架。它提供了强大的控制层,简化了开发流程...
5. **新闻发布网站的功能实现**:这个系统可能包含以下几个主要部分: - 新闻列表页:展示所有新闻的摘要和标题,通过链接可以跳转到详细页面。 - 新闻详情页:显示完整的新闻内容,包括标题、内容、作者、发布...
本篇文章将深入探讨标题“java常有代码”所涵盖的几个关键知识点:Excel的上传与下载、BaseDao接口的使用、日期(Date)与字符串之间的转换,以及拼音码的处理。 首先,让我们来讨论Excel的上传与下载。在Web应用中...
综合上述内容,这个"spring自动装配项目struts2"的实现涉及了以下几个关键技术点: 1. Spring的自动装配特性,包括bean的初始化和依赖注入。 2. Struts2的MVC架构,用于处理用户请求和控制流程。 3. Hibernate作为...
9. Dao操作优化,创建BaseDao基类,实现通用方法,利用反射和泛型提高代码复用性。 在实际开发中,SSH框架的组合使用能够提高开发效率,减少代码量,并且提供了良好的分层结构和模块化设计,便于维护和扩展。
因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客...
项目的结构通常包括以下几个部分: 1. **实体类(Entity)**:如`User.java`,代表数据库中的表结构,包含了对应的属性和getter/setter方法。 2. **DAO接口**:如`UserDAO.java`,定义了对数据库操作的方法,如`...