import java.io.Serializable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class BaseData {
private static final Log log = LogFactory.getLog(BaseData.class);
Session session;
Transaction tx;
public Session getSession() {
return session;
}
public void setSession(Session session) {
this.session = session;
}
/**
* 执行HQL语句查询
* @param hql
* @return
* @throws Exception
*/
public List queryByHql(String hql)throws Exception{
List list = null;
try {
list = session.createQuery(hql).list();
}catch (Exception e) {
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭Session
session.close();
}
return list;
}
/**
* 执行SQL语句查询
* @param hql
* @return
* @throws Exception
*/
public List queryBySql(String sql)throws Exception{
List list = null;
try {
list = session.createSQLQuery(sql).list();
}catch (Exception e) {
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭Session
session.close();
}
return list;
}
/**
* 查询所有记录
* @param obj
* @return
* @throws Exception
*/
public List queryAll(Class cls)throws Exception{
List list = null;
try {
list = session.createCriteria(cls).list();
}catch (Exception e) {
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭Session
session.close();
}
return list;
}
/**
* 通过ID查询
* @param cls
* @param id
* @return
* @throws Exception
*/
public Object queryById(Class cls, Serializable id)throws Exception{
Object obj = null;
try {
obj = session.get(cls,id);
}catch (Exception e) {
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭Session
session.close();
}
return obj;
}
/**
* 通过参数查询
* @param hql
* @param params
* @return
* @throws Exception
*/
public Object get(String hql, Serializable params) throws Exception {
Object obj = null;
try {
obj = session.load(hql, params);
}catch (Exception e) {
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭Session
session.close();
}
return obj;
}
//保存对象
public void saveData(Object obj) throws Exception {
try {
// 开始事务
tx = session.beginTransaction();
// 保存对象
session.save(obj);
//提交事务
commitDate();
}catch (Exception e) {
//事物回滚
rollbackDate();
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭session
closeSession();
}
}
//更新对象
public void updateData(Object obj) throws Exception {
try {
// 开始事务
tx = session.beginTransaction();
// 更新对象
session.update(obj);
//提交事务
commitDate();
}catch (Exception e) {
//事物回滚
rollbackDate();
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭session
closeSession();
}
}
//删除对象
public void deleteData(Object obj) throws Exception {
try {
// 开始事务
tx = session.beginTransaction();
// 删除对象
session.delete(obj);
//提交事务
commitDate();
}catch (Exception e) {
//事物回滚
rollbackDate();
log.error("系统加载数据时出错!");
log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭session
closeSession();
}
}
/**
* 多事务操作
* @throws Exception
*/
public void operatorData(List list)throws Exception{
try {
// 开始事务
tx = session.beginTransaction();
HashMap map = (HashMap)list.get(0);
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String)entry.getKey();
if(key.indexOf("insert")!=-1){
session.save(entry.getValue());
}
else if(key.indexOf("update")!=-1){
session.update(entry.getValue());
}
else if(key.indexOf("delete")!=-1){
session.delete(entry.getValue());
}
}
//提交事物
commitDate();
}catch(Exception e){
//事物回滚
e.printStackTrace();
rollbackDate();
log.error("系统加载数据时出错!");
//log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭session
closeSession();
}
}
/**
* 多表操作事务操作
* @throws Exception
*/
public void operatorData(List insertlist,List updateList,List delList)throws Exception{
try {
// 开始事务
tx = session.beginTransaction();
if(insertlist != null && insertlist.size()>0){
for(int i =0; i<insertlist.size();i++){
session.save(insertlist.get(i));
}
}
if(updateList != null && updateList.size()>0){
for(int i =0; i<updateList.size();i++){
session.update(updateList.get(i));
}
}
if(delList != null && delList.size()>0){
for(int i =0; i<delList.size();i++){
session.delete(delList.get(i));
}
}
//提交事物
commitDate();
}catch(Exception e){
//事物回滚
e.printStackTrace();
rollbackDate();
log.error("系统加载数据时出错!");
//log.error(e.getStackTrace());
throw new Exception();
}finally{
//关闭session
closeSession();
}
}
//提交事务
public void commitDate() throws Exception{
tx.commit();
}
//回滚事务
public void rollbackDate() throws Exception{
tx.rollback();
}
//关闭session
public void closeSession() throws Exception{
session.close();
}
}
分享到:
相关推荐
最新 struts2 spring3 hibernate4 环境增删查改web开发 在开发环境:eclipse4+tomcat7+struts2+spring3+hibernate4+SQL2005 增删查改web开发简单示例,所括所有的包。下载后修改applicationContext.xml连接数据库的...
综上所述,"struts hibernate spring 增删查改"的例子展示了如何利用这三个框架协同工作,实现一个完整的数据操作功能。通过Struts处理用户请求,Spring管理组件和事务,Hibernate处理数据库交互,我们可以构建出...
### Hibernate4 在 J2EE 环境下的增删查改及配置详解 #### 一、Hibernate 概述与配置 Hibernate 是一个全功能的 ORM(对象关系映射)框架,用于 Java 应用程序与数据库进行交互。它提供了一个高度抽象的层,将面向...
在本文中,我们将探讨如何使用MyEclipse自动生成Hibernate配置,并进行数据库的增删查改测试。这将涉及以下几个关键知识点: 1. **MyEclipse**:MyEclipse是一款集成开发环境,它提供了对Java、Web和企业级应用开发...
这个完整的案例旨在展示如何将这三个框架集成,实现数据的增删查操作。下面我们将深入探讨每个框架的核心功能以及它们之间的协同工作方式。 首先,Struts2是一个基于MVC设计模式的开源Web应用框架,它继承了Struts1...
总之,通过整合Spring MVC、Spring和Hibernate,我们可以快速构建一个功能完善的Web应用,实现对数据库的增删查改。这个过程不仅有助于理解三大框架的工作原理,还能提升实际开发能力。对于初学者,这是一个很好的...
**hibernate增删查改**是Java开发中数据库操作的核心技术之一,它基于对象关系映射(ORM)理念,简化了Java应用与数据库之间的交互。Hibernate作为一个强大的ORM框架,可以将Java对象直接映射到数据库表,从而避免了...
标题"Spring+Hibernate工具类所有增删改查"暗示了这是一个集合了Spring和Hibernate框架中用于基本数据库操作的工具类库。这些工具类通常包含了一系列静态方法,用于执行常见的数据库CRUD(创建、读取、更新、删除)...
综上所述,"jsf+hibernate+javabean完成对表的增删查改"项目涵盖了前端与后端的集成,涉及了JavaWeb开发的核心技术和最佳实践。通过这样的组合,开发者能够高效地构建出功能完善的数据库驱动的应用程序。在实际项目...
在这个“中间件xml实现增删查改”的主题中,我们将深入探讨如何利用中间件来处理XML文件,以实现对数据库的链接以及对XML数据的操作。 首先,我们要理解什么是中间件。中间件可以被看作是操作系统和应用程序之间的...
在SSH实现增删查改的过程中,Hibernate通过配置XML文件或注解,将Java对象映射到数据库表,提供了一套简便的CRUD(Create、Read、Update、Delete)操作接口,使得数据库的插入、查询、更新和删除变得简单易行。...
本示例通过Java实现了对数据库的简单增删查改(CRUD)以及分页功能,这在实际项目中非常常见。以下是对这些概念的详细解释: **1. 数据库连接** 首先,Java程序与数据库交互通常依赖于JDBC(Java Database ...
**标题:** 使用Hibernate实现基本的增删查改 **正文:** 在Java开发中,ORM(Object-Relational Mapping)框架如Hibernate提供了一种方便的方式来处理数据库操作,避免了大量繁琐的SQL代码。本教程将详细介绍如何使用...
标题 "jpsJavaWep增删查改.zip" 暗示了这是一个关于使用Java Web进行CRUD操作的项目或教程。"jps"可能是Java进程服务(Java Process Service)的缩写,它通常用于查看Java应用程序的运行状态。在这个上下文中,它...
DAO层则专注于数据访问,使用Hibernate的API进行增删查改操作。 总的来说,"SSH+Oracle增删查改"涵盖了Java Web开发中的核心技术和数据库操作,是开发者必须掌握的基础技能之一。通过熟练运用这些技术,可以构建出...
在这个项目中,这些框架被用来实现基本的数据操作,如增删查改(CRUD),以及分页查询、国际化和数据验证功能。下面将详细阐述这些知识点: 1. **Struts2.1**:Struts2是一个基于MVC设计模式的Web应用框架,用于...
### 基于SSH框架的人力资源管理系统增删查改功能详解 在现代软件开发中,SSH(Struts + Spring + Hibernate)框架被广泛应用于构建企业级应用,特别是在人力资源管理系统的开发中。本文将深入探讨如何利用SSH框架...
标题中的“Flex + Hibernate + Struts + LCD 增删查改1”是一个典型的Java Web开发项目,结合了多种技术来实现数据的CRUD(创建、读取、更新和删除)操作。这个项目可能是一个教学示例或者一个基础的业务应用,展示...
这个“增删查改完整示例”是一个综合性的教程,它涵盖了使用SSH框架进行基本CRUD(创建、读取、更新、删除)操作的核心知识。 首先,Struts2是MVC(Model-View-Controller)架构的一部分,主要负责处理用户请求并...
在IT行业中,"增删查改"(CRUD)是数据库操作的基础概念,适用于各种数据存储系统。这四个英文首字母缩写分别代表Create(创建)、Read(读取)、Update(更新)和Delete(删除)。这些操作构成了几乎所有的数据管理...