- 浏览: 223688 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (244)
- java (23)
- java多线程 (7)
- 综合 (1)
- oracle10g (24)
- div+css (1)
- Flex (27)
- java Nio (1)
- java设计模式 (8)
- struts2 (10)
- spring3.0 (5)
- SSH (9)
- dwr (5)
- hibernate3.6 (17)
- dom4j (1)
- sql优化 (5)
- Quartz任务调度框架 (1)
- AOP (3)
- JavaScript (18)
- jquery (3)
- JSF (9)
- ruby (1)
- 正则表达式 (1)
- 明日准备 (2)
- eclipse (3)
- gvim (1)
- CMS (1)
- linux (6)
- 杂 (4)
- java 设计模式 (1)
- MySql (10)
- JBPM (4)
- JSP技术 (1)
- Mybatis And Ibatis (2)
- 经验之谈 (10)
- WebService (1)
- java分布式(高性能,高可用,可伸缩) (0)
- springMvc (2)
- redis (0)
- ant (1)
- Nutz (6)
- 配置管理 (0)
- css+div (1)
- eChars (1)
- angularJs (1)
- D3 (3)
- Scala (1)
最新评论
-
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
有个小失误,144和147行多了两个花括号
js面向对象2--js中工厂模式的演化(重要,详细) -
Cobain_LI:
学习了,之前一直都没注意到有这样的问题
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
YTT1121:
有网络拓扑发现的源代码么,或者您会编写么?可以有偿求购,搞科研 ...
flex 之twaver1--简单网络拓扑实现
业务需求:增加一个人,这个人有两个地址,人是一张表,两个地址是一张表。一个人,两个地址全部保存是一个事务,否则谁也不保存。
1,Person类:
Person的映射文件:
2,Address类
Address映射文件:
3,测试类:
1,Person类:
package com.supan.bean; import java.util.HashSet; import java.util.List; import java.util.Set; public class Person { private int id; private String name; private int age; private Set<Address> addresss = new HashSet<Address>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Set<Address> getAddresss() { return addresss; } public void setAddresss(Set<Address> addresss) { this.addresss = addresss; } }
Person的映射文件:
<?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"> <hibernate-mapping default-lazy="true" default-access="property" package="com.supan.bean" > <class name="Person" dynamic-update="true" dynamic-insert="true" table="myperson"> <id name="id" column="id" type="integer"> <generator class="native"/> </id> <property name="name" type="string" column="name" length="20"/> <property name="age" type="integer" column="age" length="3"/> <set name="addresss" inverse="true" cascade="all" > <key column="personid"/> <one-to-many class="Address"/> </set> </class> </hibernate-mapping>
2,Address类
package com.supan.bean; public class Address { private int id; private String name; private String info; private String remark; private Person person; public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } }
Address映射文件:
<?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"> <hibernate-mapping default-lazy="true" default-access="property" package="com.supan.bean" > <class name="Address" dynamic-update="true" dynamic-insert="true" table="address"> <id name="id" column="id" type="integer"> <generator class="native"/> </id> <property name="name" type="string" column="NAME" length="20"/> <property name="info" type="string" column="INFO" length="30"/> <property name="remark" type="string" column="REMARK" length="30"/> <many-to-one name="person" class="Person" column="personid" not-null="true"></many-to-one> </class> </hibernate-mapping>
3,测试类:
/** * 该测试类,结果是,人,和两个地址都保存不成功,事务回滚 */ public void testInsert() { Configuration config = new Configuration().configure(); SessionFactory sf = config.buildSessionFactory(); Session sess = sf.openSession(); Transaction tx = null; try { sess = sf.openSession(); tx = sess.beginTransaction();// 相当于JDBC的connection.setAutoCommit(false); Person person = new Person(); person.setName("陈超阳"); person.setAge(27); //先保存人,这个人是一定能保存成功的。 sess.save(person); System.out.println("人已经保存到数据库中"); Address address = new Address(); address.setName("aaaaa"); address.setInfo("aaaaa"); address.setRemark("aaaaa"); //保存第一个地址,这个地址是保存不成功的,因为personid不能为null //该句会抛出一个异常 sess.persist(address); Address address2 = new Address(); address2.setName("bbbbbbbbbb"); address2.setInfo("bbbbbbbbbbb"); address2.setRemark("bbbbbbbbbb"); sess.persist(address2); tx.commit();// } catch (HibernateException e) { if (tx != null) tx.rollback();// 相当于JDBC的connection.rollback(); throw e; } finally { if (sess != null) sess.close(); } }
发表评论
-
项目中关于配置文件中密码的加密处理
2014-08-08 23:32 5995注:原创作品,转载请注明出处。 在项目中,为了项目 ... -
Hibernate 调用返回值的存储过程
2014-08-04 02:20 2809注:原创作品,转载请注明出处。 曾一度认为orac ... -
hibernate 的sqlQuery对象可以操作非映射的数据库表
2014-05-23 01:17 1111注:原创作品,分享以供交流学习,转载请注明出处。 一直 ... -
hibernate sql查询 标量,实体查询
2014-05-11 23:10 888注:原创作品,分享以供交流学习,转载请注明出处 本博文实例假 ... -
hibernate hql查询 select 语句 和 from语句
2014-05-11 21:37 3972注:原创作品,分享以 ... -
hibernate 基于cglib的 事务代理
2014-03-24 23:39 825实例:使用hibernate 事务代理完成一个事务,添 ... -
Hibernate 原生sql查询
2014-03-23 19:25 6751,Person package com.supan.bean ... -
hibernate一对多 双向 关联A(无连接表)
2014-03-17 00:27 896一,创建映射 1,多的一段 java文件中需要有一的属性,配置 ... -
hibernate多条件查询
2014-03-07 00:47 8081. Hibernate的Criteria这 ... -
javaSe中使用Hibernate
2014-03-01 18:16 488hibernate可用在javaSe中也可以用在java ... -
ssh中junit 测试 hibernate 1对多单向关联(不推荐使用这种关联)
2014-02-11 23:41 664主要介绍效率最低的一对多单向关联(实际中推荐使用一对多双向关联 ... -
hql select 子查询的属性可封装成list、具体对象,改变默认的数组类型
2014-01-22 16:35 7501,select子查询属性组成成list //把sel ... -
hql查询对象、查询属性
2014-01-22 15:34 605//查询整个对象集合 public void ... -
hibernate批量插入、删除、更新。
2014-01-22 15:09 740一:效率最不好的批量插入、更新。 //批量创建Pers ... -
hibernate多对一单向关联的两种映射方法
2014-01-22 14:19 525多对一关系实现两种方法: 1,在多的一段添加1的主键作为外键。 ... -
hibernate基本知识1
2014-01-21 16:21 529package com.supan.test; import ...
相关推荐
通过本文的学习,我们了解到Hibernate中事务处理的基本原理及其实现方法。正确地管理事务不仅可以提升应用的健壮性,还能有效避免数据不一致等问题。在实际项目中,根据具体的业务场景选择合适的事务管理模式是非常...
通过实践这个实例,你不仅能掌握Spring和Hibernate的基本用法,还能深入理解声明式事务管理的工作原理,这对于开发复杂的、需要事务支持的Java应用程序来说是非常重要的。这将提高你的代码质量和可维护性,让你的...
- Session API:Hibernate的Session对象是操作数据库的基本单元,它支持begin、commit和rollback等事务操作。 - Transaction API:Hibernate的Transaction接口提供了更高级别的事务管理,可以用来控制事务的生命...
事务是数据库操作的基本单位,它保证了一组操作的原子性、一致性、隔离性和持久性,即ACID特性。在Hibernate中,事务通常与Session对象紧密关联,Session是Hibernate与数据库交互的主要接口。 ### 2. Hibernate事务...
这个"hibernate基本jar包"包含了运行Hibernate项目所需的库文件。 在Java开发环境中,JAR(Java Archive)文件是一种归档格式,用于收集多个类文件和其他资源,以便在Java虚拟机中作为一个单一的模块来分发。...
首先,我们需要理解Spring事务管理的两种基本模式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过在XML或注解中声明事务边界,让Spring...
以上就是Spring结合Druid和Hibernate,使用Atomikos实现JTA配置分布式事务的基本流程。在实际应用中,还需要考虑异常处理、事务隔离级别、事务的传播行为等因素,以满足不同业务场景的需求。同时,需要注意的是,...
以下是一些关于Hibernate基本配置和所需JAR包的详细解释: 1. **Hibernate Core**: 这是Hibernate的核心库,包含了所有必要的API和实现,如SessionFactory、Session、Transaction等。在`hibernate-core-x.x.x.Final...
在“hibernate基本jar包(数据库是Oracle)”中,我们可以推断出这是针对使用Oracle数据库的Hibernate项目所需的基础库集合。这个压缩包很可能是包含了一系列用于搭建Hibernate环境并连接Oracle数据库的JAR文件。以下...
首先,事务是数据库操作的基本单位,它保证了数据的一致性和完整性。事务有四个关键属性,即ACID(原子性、一致性、隔离性和持久性)。原子性确保事务中的所有操作要么全部完成,要么全部不完成;一致性保证事务完成...
标题中的“spring,hibernate整合实现事务...通过以上知识点,我们可以理解Spring和Hibernate整合实现事务管理的基本原理和实践方法。在实际开发中,还需要根据具体需求调整和优化配置,确保事务管理的正确性和性能。
总之,这个压缩包提供了进行Hibernate开发的基本环境,包括了核心库、ORM支持和测试工具,开发者可以基于这些资源快速搭建并测试一个Hibernate项目。在实际开发中,还需要了解和掌握更多关于Hibernate的高级特性和...
`HibernateDemo(hibernate基本用法演示)` 是一个针对 Hibernate 框架的基础操作示例项目。Hibernate 是一款强大的 Java ORM(对象关系映射)框架,它允许开发者在 Java 应用程序中以面向对象的方式处理数据库交互,...
### Hibernate基本API Hibernate是一种流行的Java持久化框架,它为Java应用程序提供了强大的数据持久化能力,特别是对于那些需要频繁与数据库交互的大型企业级应用。Hibernate通过其基本API,使得开发者能够以面向...
首先,事务是数据库操作的基本单元,它确保一组操作要么全部成功,要么全部失败,从而维护数据的完整性。在多用户同时访问数据库时,事务并发控制就显得尤为重要,以防数据冲突和不一致。 悲观锁是假设最坏的情况,...
总之,Hibernate 4 的基本配置包括了XML配置文件、编程式配置、数据库连接方式(JDBC或DataSource)、连接池配置以及事务管理。理解并熟练掌握这些配置方法对于高效使用 Hibernate 进行数据库操作至关重要。
**hibernate框架基本包** Hibernate 是一个开源的Java库,它为开发人员提供了一种在Java应用程序中持久化对象的框架。这个“hibernate框架基本包”包含了一系列必要的库文件,使得开发者能够轻松地将数据库操作与...
通过以上内容,我们了解了Hibernate 5在数据持久化和事务管理方面的基本操作和注意事项。在实际项目中,结合事务的隔离级别、锁机制以及适当的事务策略,我们可以构建出高效、稳定的数据访问层。