您的位置:首页 > 其它

菜鸟学SSH(十一)——Hibernate之SchemaExport+配置文件生成表结构

2014-10-08 17:57 309 查看
今天说点基础的东西,说说怎样通过SchemaExport跟Hibernate的配置文件生成表结构。事实上方法很easy,仅仅须要两个配置文件,两个Java类就能够完毕。

首先要生成表,得先有实体类,以Person.java为例:

/**
*
* @author Administrator
* @hibernate.class table="T_Person"
*/
public class Person {

/**
* @hibernate.id
* generator-class="native"
*/
private int id;

/**
* @hibernate.property
*/
private String name;

/**
* @hibernate.property
*/
private String sex;

/**
* @hibernate.property
*/
private String address;

/**
* @hibernate.property
*/
private String duty;

/**
* @hibernate.property
*/
private String phone;

/**
* @hibernate.property
*/
private String description;

/**
* @hibernate.many-to-one
*/
private Orgnization org;

public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDuty() {
return duty;
}
public void setDuty(String duty) {
this.duty = duty;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Orgnization getOrg() {
return org;
}
public void setOrg(Orgnization org) {
this.org = org;
}
}


接下来就是Person类相应的配置文件Person.hbm.xml,配置例如以下:

<hibernate-mapping>
<class table="T_Person" name="com.tgb.model.Person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sex"/>
<property name="address"/>
<property name="duty"/>
<property name="phone"/>
<property name="description"/>
<many-to-one name="org"></many-to-one>
</class>
</hibernate-mapping>


还有包括Person.hbm.xml相关信息的Hibernate默认配置文件,hibernate.cfg.xml:

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.current_session_context_class">thread</property>
<mapping resource="com/tgb/model/Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>


万事俱备仅仅欠东风,最后我们还须要一个依据上述内容生成数据表的小工具,即ExportDB.Java:
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {

/**
* @param args
*/
public static void main(String[] args) {

// 默认读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();

// 生成并输出sql到文件(当前文件夹)和数据库
SchemaExport export = new SchemaExport(cfg);

// 创建表结构,第一个true 表示在控制台打印sql语句,第二个true 表示导入sql语句到数据库
export.create(true, true);
}
}


完毕以上步骤以后,仅仅须要运行ExportDB类就可以,当然前提是已经在mysql中创建了相应的数据库,我们这里创建了一个名为test的測试数据库。运行成功之后我们就能够看到数据库里已经有了我们的t_person表了,例如以下图所看到的:



OK,你会了吗,就是这么简单,假设之前没弄过,就来试试吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: