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语句中
其中