文档章节

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

白志华
 白志华
发布于 2015/10/18 10:56
字数 603
阅读 7
收藏 0
点赞 0
评论 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

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
Hibernate整合Spring后,如何使用SchemaExport生成数据库表

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

非作者 ⋅ 2012/08/18 ⋅ 1

品美味鲜果哈吉~让生活更加精致

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

v18610770899 ⋅ 05/29 ⋅ 0

hibernate生成数据库表

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

雨中人X ⋅ 2016/06/14 ⋅ 1

2016年上半年信息系统项目管理师真题之上午题小虎趣味解答第16-20题

 2016年上半年信息系统项目管理师真题之四 小虎趣味解答第16-20题 16.在信息系统安全保护中,依据安全策略控制用户对文件数据库表等客体的访问属于()安全管理 A.安全审计 B.入侵检测...

littletigerbj ⋅ 2017/04/03 ⋅ 0

利用hibernate框架工具生成数据表

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

ZICK_ZEON ⋅ 2014/01/14 ⋅ 0

Hibernater学习笔记(一)

1.hibernate概述 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL...

Mr_欢先生 ⋅ 2017/12/05 ⋅ 0

[Unity3D插件]2dtoolkit系列二 动画精灵的创建以及背景图的无限滚动

经过昨天2dtoolkit系列教程一的推出,感觉对新手还有有一定的启发作用,引导学习使用unity 2dToolKit插件的使用过程,今天继续系列二——动画精灵的创建,以及背景图的无限循环滚动,在群里总...

蓬莱仙羽 ⋅ 2014/03/05 ⋅ 0

Rob Janoff, 苹果LOGO设计者采访实录

距离42周岁生日还有2星期,图灵——这个语调温和的天才结束了自己的生命,那只被咬了一口的毒苹果便是凶器,上面还残留着图灵涂抹上的剧毒氰化物。不少人认为苹果公司产品上的LOGO便是在向这...

老枪 ⋅ 2011/03/01 ⋅ 5

Hibernate创建session工厂

Hibernate创建session工厂 要创建session的时候,只要调用这个类里面的getSession()方法就可以了, import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibe...

一念三千 ⋅ 2012/09/29 ⋅ 2

hql手动创建表

---------------------------------手动用代码进行数据库创建------------------------------ Configuration con=new Configuration(); con.configuration(); //创建工具类对象 SchemaExport......

李永china ⋅ 2016/04/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部