以下是用Hibernate做Blog中数据表用户表和文章表之间的映射关系
在写用户表和文章表映射关系之前一定要清楚的知道用户表里的属性都有哪些,在写完POJO类之后就可以写表之间一对多的关系了。
用户表的POJO类(User.java)
package cn.com.blog.model;
import java.util.HashSet;
import java.util.Set;
public class User {
private String id;
private String name;
private String password;
private Set messages = new HashSet();
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public Set getMessages() {
return messages;
}
public void setMessages(Set messages) {
this.messages = messages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
文章表的POJO类(Message.java)
package cn.com.blog.model;
import java.sql.Timestamp;
import java.util.Set;
public class Message extends BaseModel {
private String id;
private String title;
private String content;
private User user;
private Timestamp pubdate;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
public Timestamp getPubdate() {
return pubdate;
}
public void setPubdate(Timestamp pubdate) {
this.pubdate = pubdate;
}
}
下面是用户表和文章表之间的映射关系
注意:这里的用户表和文章表的映射文件的名子一定要与POJO类的名子相对应,否则建立的关系就存
在了。
用户表的映射文件(User.hbm.xml)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"[url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url]">
<hibernate-mapping package="cn.com.blog.model">
<class name="User" table="USER">
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
<property name="name" column="NAME"/>
<property name="password" column="PASSWORD" />
<set name="messages" inverse="false" cascade="all">
<!--key元素用于指定关联的字段 -->
<key column="USER_ID"/>
<!-- 一个用户对应多篇文章 -->
<one-to-many class="Message"/>
</set>
</class>
</hibernate-mapping>
文章表的映射文件(Message.hbm.xml)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"[url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url]">
<hibernate-mapping package="cn.com.blog.model">
<class name="Message" table="MESSAGE">
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
<property name="title" column="TITLE"/>
<property name="content" column="CONTENT" />
<property name="pubdate" column="PUBDATE" />
<!-- 多篇文章对应一个用户 -->
<many-to-one name="user" column="USER_ID"/>
</class>
</hibernate-mapping>
在这些POJO类和映射文件都写好之后,通过写一个测试的主方法,完成一下向数据库里添加一下数据,如果添加进去,说明这项工作基本完成。这些是我在学习Hibernate中理解比较清楚的一部分内容,在这里和大家一起分享一下,希望大家多提宝贵意见。
在写用户表和文章表映射关系之前一定要清楚的知道用户表里的属性都有哪些,在写完POJO类之后就可以写表之间一对多的关系了。
用户表的POJO类(User.java)
package cn.com.blog.model;
import java.util.HashSet;
import java.util.Set;
public class User {
private String id;
private String name;
private String password;
private Set messages = new HashSet();
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public Set getMessages() {
return messages;
}
public void setMessages(Set messages) {
this.messages = messages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
文章表的POJO类(Message.java)
package cn.com.blog.model;
import java.sql.Timestamp;
import java.util.Set;
public class Message extends BaseModel {
private String id;
private String title;
private String content;
private User user;
private Timestamp pubdate;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
public Timestamp getPubdate() {
return pubdate;
}
public void setPubdate(Timestamp pubdate) {
this.pubdate = pubdate;
}
}
下面是用户表和文章表之间的映射关系
注意:这里的用户表和文章表的映射文件的名子一定要与POJO类的名子相对应,否则建立的关系就存
在了。
用户表的映射文件(User.hbm.xml)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"[url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url]">
<hibernate-mapping package="cn.com.blog.model">
<class name="User" table="USER">
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
<property name="name" column="NAME"/>
<property name="password" column="PASSWORD" />
<set name="messages" inverse="false" cascade="all">
<!--key元素用于指定关联的字段 -->
<key column="USER_ID"/>
<!-- 一个用户对应多篇文章 -->
<one-to-many class="Message"/>
</set>
</class>
</hibernate-mapping>
文章表的映射文件(Message.hbm.xml)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"[url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url]">
<hibernate-mapping package="cn.com.blog.model">
<class name="Message" table="MESSAGE">
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
<property name="title" column="TITLE"/>
<property name="content" column="CONTENT" />
<property name="pubdate" column="PUBDATE" />
<!-- 多篇文章对应一个用户 -->
<many-to-one name="user" column="USER_ID"/>
</class>
</hibernate-mapping>
在这些POJO类和映射文件都写好之后,通过写一个测试的主方法,完成一下向数据库里添加一下数据,如果添加进去,说明这项工作基本完成。这些是我在学习Hibernate中理解比较清楚的一部分内容,在这里和大家一起分享一下,希望大家多提宝贵意见。