说得再好,不如练练手!前面我们已对Hibernate相干的知识有了1定的了解,Hibernate是1个完全的ORM工具,它使用的API是原生的。
下面我们来开始1个简单的Hibernate项目,首先我们来创建1个JavaBean的实体类
package com.cm2easy.liuyc.hibernate.entity;
public class Message {
private Integer msgId;
private String text;
private Message nextMessage;
public Message() {
}
public Integer getMsgId() {
return msgId;
}
public void setMsgId(Integer msgId) {
this.msgId = msgId;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Message getNextMessage() {
return nextMessage;
}
public void setNextMessage(Message nextMessage) {
this.nextMessage = nextMessage;
}
}
注意:在所有有使用反射机制实现的框架时,无参构造函数是必须的。
Hibernate是怎样知道我们的类要如何持久化到关系数据库中呢?这些信息都写在1个XML文件中,就是我们所说的对象/关系映照文件;
<?xml version="1.0" encoding="UTF⑻"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping⑶.0.dtd" >
<hibernate-mapping>
<class name="com.cm2easy.liuyc.hibernate.entity.Message" table="s_message">
<id name="msgId" type="integer" >
<column name="msg_id"></column>
<generator class="increment"></generator>
</id>
<property name="text" type="string" >
<column name="text" ></column>
</property>
<many-to-one name="nextMessage" cascade="all" foreign-key="PK_NEXT_MESSAGE">
<column name="next_message"></column>
</many-to-one>
</class>
</hibernate-mapping>
这个配置文件向Hibernate交代了我们要把类持久化到哪一个表,类对应的属性映照到表的哪一个列,