? ??Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。
? ? 今天就來演示一下Hibernate最初級的操作,使用SchemaExport創建數據表。
? ??
? ? 1.首先建立POJO類
~~~
package com.bjpowernode.hibernate;
import java.util.Date;
/**
* 用戶
* @author Longxuan
*
*/
public class User {
private String id;
private String name;
private String password;
private Date createTime;
private Date expireTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
}
~~~
? ? 2、根據POJO類里面里面相關的字段,在包中創建User.hbm.xml映射文件
~~~
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjpowernode.hibernate.User" >
<!--hibernate為我們生成主鍵id-->
<id name="id">
<generator class="uuid" />
</id>
<!--默認把類的變量映射為相同名字的表列,當然我們使用column屬性修改表字段-->
<property name="name" column="name"></property>
<property name="password"></property>
<property name="createTime"></property>
<property name="expireTime"></property>
</class>
</hibernate-mapping>
~~~
? ? 3、在src中建立hibernate.cfg.xml
~~~
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="foo">
<!-- 數據庫的連接也可以直接使用hibernate.properties文件 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</property><!-- 指定sql方言 -->
<property name="hibernate.show_sql">true</property><!-- 設置是否顯示生成sql語句 -->
<property name="hibernate.format_sql">true</property><!-- 設置是否格式化sql語句-->
<mapping resource="com/bjpowernode/hibernate/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
~~~
? ? 4、建立ExportDB類
~~~
package com.bjpowernode.hibernate;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
* 將hbm生成ddl
* @author Longxuan
*
*/
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);
}
}
~~~
? ? 5、建立log4j.properties日志文件
~~~
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=warn, stdout
~~~
? ? 現在可以測試了。首先在mysql中創建hibernate_test數據庫:

? ? 運行ExportDB的main方法,結果如圖:


? ??
- 前言
- Struts 簡單小結
- 深入淺出了解Struts的處理流程(有圖有真相)
- struts標簽+jstl標簽之國際化實例
- 一口一口吃掉Hibernate(二)——別被世俗蒙蔽了雙眼:Hibernate中Session之get和load方法的真正區別
- 一口一口吃掉Hibernate(一)——使用SchemaExport生成數據表
- 一口一口吃掉Hibernate(三)——Hibernate給表和字段設置前后綴及分隔符
- 一口一口吃掉Hibernate(四)——多對一單向關聯映射
- 一口一口吃掉Hibernate(五)——一對多單向關聯映射
- 一口一口吃掉Hibernate(六)——多對多關聯映射
- 一口一口吃掉Hibernate(七)——繼承映射
- 一口一口吃掉Hibernate(八)——Hibernate中inverse的用法
- 一覽Spring全貌
- 包辦婚姻的Spring IoC
- 3幅圖讓你了解Spring AOP
- Spring Aop實例之xml配置
- Spring Aop實例之AspectJ注解配置