Hibernate配置翻译
<hibernate-mapping>
<class name="项目路径" table="库中对应表名" schema="dbo" catalog="netoa">
<meta attribute="class-description">指定描述类的javaDoc</meta>
<meta attribute="class-scope">指名类的修饰类型</meta>
<meta attribute="extends">指定继承类</meta>
<id name="bgrkbh" type="long">
<column name="BGRKBH" precision="15" scale="0" sql-type="库中类型" check="BGRKBH>10"/>
<meta attribute="scope-set">指定类,类属性的getxxx(),setxxx()方法的修饰符
包括:static,final,abstract,public,protected,private
</meta>
<generator class="assigned" />
</id>
<property name="Class.fileName" type="long">
<column name="YSLX" precision="精度" scale="刻度" not-null="默认false" sql-type="数据库中类型"/>
附加属性不会影响Hibernate的运行行为
<meta attribute="field-description">指定描述类的javaDoc</meta>
指定描述类属性的javaDoc
</property>
</class>
</hibernate-mapping>
<meta>元素属性
属性 描述
class-description 指定描述类的javaDoc
field-description 指定描述类的属性javaDoc
interface 如果为true,表明生成接口而非类,默认false
implements 指定类所实现的接口
extends 指定继承的父类名
generated-class 重新指定生成的类名
scope-class 指定类的修饰符,默认public
scope-set 指定set方法的修饰符,默认public
scope-get 指定get方法的修饰符,默认public
scope-field 指定类的属性的修饰符,默认private
use-in-toString 如果为true,表示在toString()方法中包含此属性
gen-property 如果为false,不会在java类中生成此属性,默认true
finder-method 指定find方法名
<column>元素属性
name 设定字段名字
length 设定字段长度
not-null 如为true,指名该字段不允许为null,默认false
unique 如为true,指名该字段具有唯一约束,默认false
index 给一个或多个字段建立索引
unique-key 为多个字段设定唯一约束
foreign-key 为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含
foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key
sql-type 设定字段sql类型
check 设定sql检查约束
用于控制insert or update 语句的映射属性
<property>元素的insert属性 如为false,在insert中不包含该字段,默认为true
<property>元素的update属性 如为false,在update中不包含该字段,默认为true
<class>元素的mutable属性 如为false,等价于所有字段的update属性为false,默认为true
<property>元素的dunameic-insert属性 如为true,表明动态生成insert语句,只有不为null,才会包含insert语句中,默认false
<property>元素的dunameic-update属性 如为true,表明动态生成update语句,只有不为null,才会包含insert语句中,默认false
<class>元素的dunameic-insert属性 如为true,表明等价于所有字段动态生成insert语句,只有不为null,才会包含insert语句中 ,默认false
<class>元素的dunameic-update属性 如为true,表明等价于所有字段动态生成update语句,只有不为null,才会包含insert语句中 ,默认false
cascade属性
描述
none 在保存更新时,忽略其他关联对象,他是cascade默认属性
save-update 当通过Session的save(),update()以及saveOrUpdate()方法来保存或更新当前对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象
delete 当通过session的delete()方法删除当前对象时,及联删除所有对象
lock 把游离对象加入缓存当中,关联对象也加入
evict 把持久化对象从缓存中移除,关联对象也移除
refresh 刷新当前缓存中对象,级联对象也会刷新
all 包含save-update、 delete、 evict、lock及refresh的行为
delete-orphan 删除所有和当前对象解除关联关系的对象
all-delete-orphan 包含all和delete-orphan
Hibernate映射类型,对应的java基本类型及对应的标准SQL类型
Hibernate 映射类型 java类型 标准SQL类型
integer或者int int INTEGER
long long BIGINT
short short SMALLINT
byte byte TINYINT
float float FLOAT
double double DOUBLE
big_decimal java.math.BigDecimal NUMERIC
character char and string CHAR
string string VARCHAR
boolean boolean BIT
Hibernate映射类型,对应的java时间和日期类型及对应的标准SQL类型
映射类型 java类型 标准SQL类型 描述
date java.util.Date或者java.sql.Date DATE 代表日期,YYYY-MM-DD
time java.util.Date或者java.sql.Date TIME 代表时间,形式为HH:MM:SS
timestamp java.util.Date或者java.sql.Timestamp TIMESTAMP 代表日期和时间,YYYYMMDDHHMMSS
calendar java.util.Calendar TIMESTAMP 同上
calendar_date java.util.Calendar DATE 代表日期,YYYY-MM-DD
JAVA大对象类型的Hibernate映射类型
映射类型 java类型 标准SQL类型 MYSQL类型 ORALCE类型
binary byte[] VARBINARY(或BLOB) BLOB BLOB
text string CLOB TEXT CLOB
serializable 实现Serializable VARBINARY(或BLOB) BLOB BLOB
接口任意一个java类
clob java.sql.Clob CLOB TEXT CLOB
blob java.sql.Blob BLOB BLOB BLOB
a Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
Object obj=new Object();
obj.setFile(Hibernate.createClob(" "));
session.save(obj);
session.flush();
//锁定这条纪录
session.refresh(obj,LocakMode.UPGRADE);
oracle.sql.CLOB clob=(oracle.sql.CLOB)obj.getFile();
//把长文本数据放入Clob中
Writer pw=clob.getCharacterOutputStream();
pw.write(longText);//longText标识长度超过255的字符串
pw.close();
tx.commit();
session.close();
b InputStream in=this.getClass().getResourceAsStream("photo.gif");
byte[] buffer=new byte[in.available()];
in.read(buffer);
set