`

hibernate删除的理解

    博客分类:
  • java
阅读更多

customer2的配置文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bsw.job.Customer2" table="customer2" catalog="hibernateex">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="30" />
</property>
<property name="address" type="java.lang.String">
<column name="address" length="30" />
</property>
</class>
</hibernate-mapping>

Customer2DAO 类

package com.bsw.job;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;

import com.sun.org.apache.bcel.internal.generic.GETSTATIC;

/**
* Data access object (DAO) for domain model class Customer2.
*
* @see com.bsw.job.Customer2
* @author MyEclipse Persistence Tools
*/

public class Customer2DAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(Customer2DAO.class);

public List selectCustomer(String name){
String hql="from Customer2 where name =:name order by age";
Query query =getSession().createQuery(hql);
query.setParameter("name", name);
List list=query.list();
return list;

}

public List selectAllCustomer(){
String hql="from Customer2 order by age";
Query query =getSession().createQuery(hql);

List list=query.list();
return list;

}

public void deleteCustomer(Customer2 customer){
Transaction tr=getSession().beginTransaction();
getSession().delete(customer);
tr.commit();
getSession().close();
}

public void updateCustomer(Customer2 customer){
Transaction tr=getSession().beginTransaction();
getSession().saveOrUpdate(customer);
tr.commit();
getSession().close();
}

public void addCustomer(Customer2 customer){
Transaction tr=getSession().beginTransaction();
getSession().save(customer);
tr.commit();
getSession().close();
}
public void save(Customer2 transientInstance) {
log.debug("saving Customer2 instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}

public void delete(Customer2 persistentInstance) {
log.debug("deleting Customer2 instance");
try {
Transaction tr=getSession().beginTransaction();
getSession().delete(persistentInstance);
tr.commit();
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}

public Customer2 findById(java.lang.Integer id) {
log.debug("getting Customer2 instance with id: " + id);
try {
Customer2 instance = (Customer2) getSession().get(
"com.bsw.job.Customer2", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}

public List findByExample(Customer2 instance) {
log.debug("finding Customer2 instance by example");
try {
List results = getSession().createCriteria("com.bsw.job.Customer2")
.add(Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}

public List findByProperty(String propertyName, Object value) {
log.debug("finding Customer2 instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Customer2 as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}

public List findAll() {
log.debug("finding all Customer2 instances");
try {
String queryString = "from Customer2";
Query queryObject = getSession().createQuery(queryString);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}

public Customer2 merge(Customer2 detachedInstance) {
log.debug("merging Customer2 instance");
try {
Customer2 result = (Customer2) getSession().merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}

public void attachDirty(Customer2 instance) {
log.debug("attaching dirty Customer2 instance");
try {
getSession().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}

public void attachClean(Customer2 instance) {
log.debug("attaching clean Customer2 instance");
try {
getSession().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}
}

测试类

package com.bsw.test;

import java.util.List;

import com.bsw.job.Customer2;
import com.bsw.job.Customer2DAO;

public class TestCustomer2 {
public static void main(String[] args) {
Customer2DAO dao=new Customer2DAO();
List<Customer2> list=(List<Customer2>)dao.selectAllCustomer();
System.out.println("按年龄从小到大排:");
System.out.println("用户ID "+"姓名 "+"年龄 "+"邮箱 "+"地址");
//for(Customer2 customer:list){
Customer2 customer=new Customer2();
customer.setAddress("上帝");
customer.setAge(25);
dao.addCustomer(customer);
Customer2 customer1=new Customer2();
//dao.getSession().get("customer1", 7);
customer1.setAddress("上帝");//在此处用这样就删不掉,还会报错,因为没有持久化,但如果用customer1.setId(7);的话就不会报错,因为在session.delete()方法中可以根据id把你所传的customer1给内部持久化。
dao.deleteCustomer(customer1);
//}
}
}

分享到:
评论

相关推荐

    hibernate入门简单实例

    这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...

    hibernate学习资料大全

    这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的工具。 1. **对象关系映射(ORM)基础**: Hibernate 提供了一种将Java对象模型与关系数据库之间的映射机制,使得开发者...

    Java Hibernate3 添加和删除数据

    在Java Hibernate3中,添加和删除数据是通过持久化类和配置文件实现的,无需直接编写SQL语句。以下是关于这个主题的详细说明。 首先,我们需要了解Hibernate3的基本概念。Hibernate提供了一个API,允许开发者将Java...

    Hibernate 中文api 等学习资料

    标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...

    hibernate3 hibernate3

    Hibernate3 是一个强大的Java持久...理解并熟练掌握Hibernate3的核心概念和使用方法,对于任何Java开发者来说都是必要的技能。在实际项目中,正确配置和使用Hibernate,可以有效地实现数据的持久化,同时降低维护成本。

    struts2 hibernate spring 整合批量删除源码

    总的来说,这个批量删除源码示例展示了如何利用Struts2处理HTTP请求,Spring管理依赖,以及Hibernate与数据库交互,是学习和理解三大框架整合开发的一个实践案例。通过分析和理解这段代码,开发者可以提升自己在企业...

    Hibernate,hibernate笔记

    `hibernate.hbm2ddl.auto`可以设置为"create-drop"、"create"、"update"或"validate",分别对应在启动时创建/删除数据库结构、创建数据库结构、更新数据库结构或验证数据库结构。 3. **HQL(Hibernate Query ...

    Hibernate入门案例源码

    例如,创建一个User类,然后通过Hibernate的Session接口进行CRUD(创建、读取、更新、删除)操作。 在MyEclipse和Eclipse中,配置Hibernate通常包括以下几个步骤: 1. 添加Hibernate库:你需要导入Hibernate的jar...

    hibernate-3.2源代码

    在Hibernate 3.2版本中,开发者们能够更深入地理解其内部机制,从而提高开发效率和应用性能。本篇文章将详细解析Hibernate 3.2的核心功能和源代码结构。 一、Hibernate概览 Hibernate是Java社区中的明星项目,它...

    hibernate3.zip 包含hibernate3.jar

    11. **事件监听器**:Hibernate允许注册事件监听器,对持久化对象的各种操作(如保存、更新、删除等)进行拦截和自定义处理。 以上就是`hibernate3.jar`中所包含的关键知识点。理解并熟练使用这些概念,可以帮助...

    hibernate 3.6 中文 chm

    《Hibernate 3.6 中文 CHM》是一个针对Hibernate 3.6版本的详细使用指南,旨在帮助开发者理解和掌握这个强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个重要工具,它允许程序员以面向对象的方式处理...

    Hibernate入门理解

    4. **CRUD操作**: Hibernate提供了简便的方法进行创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。如`save()`、`load()`、`update()`、`delete()`等。 5. **HQL(Hibernate Query Language)**...

    hibernate实战 英文版

    6. **高级特性**:除了基础功能之外,本书还涵盖了诸如懒加载、批量更新和删除等高级特性。 #### 三、书籍特点分析 1. **权威性**:作为由Hibernate项目的创始人和核心贡献者撰写的书籍,《Hibernate实战》在内容...

    hibernate第一个hibernate

    本教程将带领初学者深入理解Hibernate的第一个项目,帮助你快速入门并掌握其核心概念。 1. Hibernate概述: Hibernate是一个开源的Java库,它提供了一种在Java应用中持久化数据的方式,使得开发者无需编写大量的...

    struts+spring+hibernate实现图书修改和删除

    在本项目中,Hibernate被用来执行图书数据的CRUD(创建、读取、更新、删除)操作,通过配置文件定义实体类与数据库表的映射,然后通过SessionFactory和Session对象进行数据交互。 **整合SSH** SSH整合的关键在于...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用...理解并熟练运用这些知识点,将使你在开发基于Hibernate3的Java应用时更加得心应手。

    hibernate5.2.9

    这个压缩包包含的是Hibernate 5.2.9的库包以及源代码,对于理解其工作原理和自定义扩展非常有帮助。 1. **对象关系映射(ORM)**:Hibernate的核心功能是将Java类与数据库表之间建立映射关系,使得可以通过对象的...

    北大青鸟Hibernate学习资料

    Hibernate中的对象有四种状态:瞬时态、持久态、托管态和删除态。理解这些状态对于管理和跟踪对象的生命周期至关重要。同时,文档《Hibernate对象状态及一对多关联.doc》详细介绍了如何设置和管理一对多关联,这种...

    HibernateDemo

    这个压缩包提供了一个简单的入门项目,帮助初学者理解如何使用Hibernate框架。通过这个例子,我们可以深入学习Hibernate的核心功能和配置。 【描述】中提到的关键知识点包括: 1. **Hibernate框架**:Hibernate是...

Global site tag (gtag.js) - Google Analytics