Hibernate中在xxx.hbm.xml文件中控制insert和update语句
2016-01-14 22:48
375 查看
Hibernate中在xxx.hbm.xml文件中控制insert和update语句
1.hibernate在初始化阶段,就会根据映射文件的映射信息,为所有的持久化类预定义一下SQL语句:
A)Insert语句,如Order类的insert语句
insert intoORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) values(?,?,?,?)
B)Update语句,如Order类的update语句
update ORDERS set ORDER_NUMBER=?,PRICE=?,CUSTOMER_ID=?,where ID=?
C)Delete语句,如Order类的delete语句
Delete from ORDER where ID=?
D)根据OID来从数据库加载持久化实例的select语句,如Order类的select语句
Select ID,ORDER_NUMBER,PRICE,CUSTOMER_ID from ORDERS whereID=?
(HQL或者QBC查询对应的select语句是在执行该代码时才动态生成的)
说明如下:
这些SQL语句都存放在SessionFactory的内置缓存中,当执行Session的save()方法,update()方法,delete()方法,load()方法和get()方法时,将从缓存中找到相应的预定义的SQL语句,再把具体的参数值绑定到该SQL语句中
其中<class>元素的dynamic-insert属性和dynamic-update属性,如果设置为true,则表示当保存一个对象或者更新一个对象时,会动态生成insert和update语句,insert和update语句仅包含所有取值需要更新的字段,默认值为false。Hibernate生成动态的SQL语句的系统开销很小,因此不会影响应用的运行性能,如果表中包含很多地段,在insert和update语句中就只包含需要插入或更新的字段,这样可以节省数据库执行SQL语句的时间,从而提高应用的运行性能
1.hibernate在初始化阶段,就会根据映射文件的映射信息,为所有的持久化类预定义一下SQL语句:
A)Insert语句,如Order类的insert语句
insert intoORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) values(?,?,?,?)
B)Update语句,如Order类的update语句
update ORDERS set ORDER_NUMBER=?,PRICE=?,CUSTOMER_ID=?,where ID=?
C)Delete语句,如Order类的delete语句
Delete from ORDER where ID=?
D)根据OID来从数据库加载持久化实例的select语句,如Order类的select语句
Select ID,ORDER_NUMBER,PRICE,CUSTOMER_ID from ORDERS whereID=?
(HQL或者QBC查询对应的select语句是在执行该代码时才动态生成的)
说明如下:
这些SQL语句都存放在SessionFactory的内置缓存中,当执行Session的save()方法,update()方法,delete()方法,load()方法和get()方法时,将从缓存中找到相应的预定义的SQL语句,再把具体的参数值绑定到该SQL语句中
其中<class>元素的dynamic-insert属性和dynamic-update属性,如果设置为true,则表示当保存一个对象或者更新一个对象时,会动态生成insert和update语句,insert和update语句仅包含所有取值需要更新的字段,默认值为false。Hibernate生成动态的SQL语句的系统开销很小,因此不会影响应用的运行性能,如果表中包含很多地段,在insert和update语句中就只包含需要插入或更新的字段,这样可以节省数据库执行SQL语句的时间,从而提高应用的运行性能
相关文章推荐
- java基础教程-容器(三)
- LeetCode 之 Product of Array Except Self
- 【原】AFNetworking源码阅读(一)
- hdfs工具类加注释
- Linux同步(一)-------completion
- android drawable 、drawable-ldpi、drawable-mdpi、drawable-hdpi、。。。
- 2016/01/14开始学习git:标签管理:操作标签
- MYSQL新手常见错误
- OCday3-类与对象方法和易犯错误、匿名对象、封装、高内聚低耦合、static修饰
- ElasticSearch报错
- IOS学习【前言】
- hdoj 2204 Eddy's爱好 【容斥原理】
- 大数据(三) - YARN
- Java中的volatile关键字
- IOS学习【前言】
- UITableView中的cell的优化
- MyEclipse 2015 Stable 2.0破解方法
- 【深入】java 单例模式(转)
- C++ 模板与泛型编程
- 【学习笔记】《STL使用入门教程》第六讲:容器使用时机、算法、删除元素的注意点