文档章节

一口一口吃掉Hibernate(一)——使用SchemaExport生成数据表

白志华
 白志华
发布于 2015/10/18 10:56
字数 603
阅读 8
收藏 0

      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方法,结果如图:



      

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/11669917

白志华
粉丝 34
博文 265
码字总数 57524
作品 0
长沙
程序员
私信 提问
hibernate 自动生成数据库表

一口一口吃掉Hibernate(一)——使用SchemaExport生成数据表 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编...

jxlgzwh
03/28
0
0
Hibernate整合Spring后,如何使用SchemaExport生成数据库表

SchemaExport生成数据库表 一.Hibernate原生状态 Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(true, true); 二.H......

非作者
2012/08/18
2.5K
1
hibernate生成数据库表

hibernate生成数据库表 注:使用前需把数据库建好,运行完成后,原有数据会被清空 hibernate.cfg.xml Java 代码 每次修改hibernate配置文件后,运行一下,就可以自动更新表结构。...

雨中人X
2016/06/14
50
1
利用hibernate框架工具生成数据表

因为学习java框架技术的原因,经常在网上下载一些ssh方面的代码来看,在这个过程中发现大部分朋友在分享的过程中没有将项目的sql文件一并拿出,这给自己的部署学习过程带来不少麻烦。相信这也...

榫眼宾
2014/01/14
344
0
品美味鲜果哈吉~让生活更加精致

品美味鲜果哈吉~让生活更加精致 穿梭高楼间的飞鸟偶尔停立在某个窗户的边缘上,突然而来的画面在忙碌中透出悠闲,常在文件堆中跋山涉水的人们除了靠偶然的遇见来搏得一处轻松自在,一杯鲜果哈...

v18610770899
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript设计模式——适配器模式

  适配器模式是设计模式行为型模式中的一种模式;   定义:   适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修...

有梦想的咸鱼前端
17分钟前
2
0
Andorid SQLite数据库开发基础教程(1)

Andorid SQLite数据库开发基础教程(1) Android数据库访问方式 SQLite是Android系统默认支持的文件数据库。该数据库支持SQL语言,适合开发人员上手。本教程将讲解如何开发使用SQLite的Andro...

大学霸
20分钟前
2
0
Handler简解

Handler 这里简化一下代码 以便理解 Handler不一定要在主线程建 但如Handler handler = new Handler(); 会使用当前的Looper的, 由于要更新UI 所以最好在主线程 new Handler() { mLooper = Lo...

shzwork
42分钟前
4
0
h5获取摄像头拍照功能

完整代码展示: <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum......

诗书易经
45分钟前
3
0
正向代理和反向代理

文章来源 运维公会:正向代理和反向代理 1、正向代理 (1)服务对象不同 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代...

运维团
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部