hibernate schema使用schemaExport生成数据表报错,请问该怎么解决

我是用hibernate+Oracle进行自动生成数据库表
进行hibernate关联映射
实体类User类
package com.hibernateTest.
@SuppressWarnings("serial")
public class User implements java.io.Serializable{
private User_info user_
public User() {
public User_info getUser_info() {
return user_
public void setUser_info(User_info userInfo) {
user_info = userI
public Integer getCid() {
public void setCid(Integer cid) {
this.cid =
public Integer getId() {
public void setId(Integer id) {
public String getName() {
public void setName(String name) {
this.name =
public String getPassword() {
public void setPassword(String password) {
this.password =
实体类User_info代码
下面是两个两个xml映射文件 User.hbm.xml 和User_info.hbm.xml
&?xml version="1.0" encoding="UTF-8"?&
&!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.hibernateTest.entity.User" table="user2"&
&id name= "id" type="java.lang.Integer"&
&column name="id"&&/column&
&generator class="sequence"&
&param name="sequence"&user2_seq&/param&
&/generator&
&property name="cid" type = "java.lang.Integer"&
&column name="cid" /&
&/property&
&property name="name" type="java.lang.String"&
&column name="name"&&/column&
&/property&
&property name="password"&
&column name="password"&&/column&
&/property&
&one-to-one name="user_info" property-ref="user"&&/one-to-one&
&/hibernate-mapping&
自动生成数据库的代码是
import org.hibernate.cfg.C
import org.hibernate.tool.hbm2ddl.SchemaE
* 自动根据映射文件生成数据库
public class ExportDB {
public static void main(String args[]){
//第一步读取配置文件
Configuration conf = new Configuration().configure();
//创建SchemaExport对象
SchemaExport export = new SchemaExport(conf);
//创建数据库表下面方法参数第一个TRUE是打印sql语句,第二个是导入数据库
export.create(true, true);
运行完了没有报错--
但是我在控制台查询user_info表的时候却提示表或视图不存在,换而言之user_info这张表没有在数据库生成,但是我可以查询到user2表,以及序列user_seq和user_info_seq
求解---本人菜鸟第一次在ITEYE
楼上说的对,有些表是系统表,例如:User,Type,这些应该避免
User是不是orcal的关键字?
已解决问题
未解决问题3334人阅读
& & 上篇博客《》我们已为Hibernate开发做好了准备,接下来我们简单的用Hibernate+MySql做个小例子,来看下Hibernate的工作流程是怎样的。
实例说明:
& & Hibernate和MySql相结合,Hibernate利用SchemaExport创建数据表,并利用类文件向创建的数据表中添加数据。
& & 注:对象与表对应;属性与列对应!
实例过程:
先看一下hibernate项目目录情况
1.创建用户类:User.java
&在src下创建包com.tgbnode.hibernate,在包中创建一个User类,主要是用户的属性:id,用户名,密码,创建时间,失效时间。
package com.tgbnode.
import java.util.D
public class User {
//创建时间
private Date createT
//失效时间
private Date expireT
public String getId() {
public void setId(String id) {
public String getName() {
public void setName(String name) {
this.name =
public String getPassword() {
public void setPassword(String password) {
this.password =
public Date getCreateTime() {
return createT
public void setCreateTime(Date createTime) {
this.createTime = createT
public Date getExpireTime() {
return expireT
public void setExpireTime(Date expireTime) {
this.expireTime = expireT
2.创建User.hbm.xml文件
& 利用此xml文件,使User.java生成相应的数据库表及字段。
&?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&
&!--默认把类的名称映射为相同名字的表名,可使用table属性修改表名--&
&class name=&com.tgbnode.hibernate.User&&
&!-- 主键采用uuid生成 --&
&id name=&id&&
&generator class=&uuid&/&
&!--默认把类的变量映射为相同名字的表字段,可使用column属性修改表字段--&
&property name=&name&/&
&property name=&password&/&
&property name=&createTime&/&
&property name=&expireTime&/&
&/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&
&!-- 数据库驱动 --&
&property name=&hibernate.connection.driver_class&&com.mysql.jdbc.Driver&/property&
&!-- 指定使用数据库为hibernate_first,注意这里的端口号3306要与安装MySql时设置的端口号相同 --&
&property name=&hibernate.connection.url&&jdbc:mysql://localhost:3306/hibernate_first&/property&
&!-- 连接数据库的用户名 --&
&property name=&hibernate.connection.username&&root&/property&
&!-- 连接MySql使用的密码 --&
&property name=&hibernate.connection.password&&123456&/property&
&!-- 选择使用的方言 --&
&property name=&hibernate.dialect&&org.hibernate.dialect.MySQLDialect&/property&
&!-- 设置是否显示生成sql语句 --&
&property name=&hibernate.show_sql&&true&/property&
&!--映射文件--&
&mapping resource=&com/tgbnode/hibernate/User.hbm.xml&/&
&/session-factory&
&/hibernate-configuration&
4.建立ExportDB类
& &通过运行此类创建相应的数据表。
package com.tgbnode.
import org.hibernate.cfg.C
import org.hibernate.tool.hbm2ddl.SchemaE
* 将hbm生成ddl
* @author azj
public class ExportDB {
public static void main(String[] args) {
//默认读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//SchemaExport工具类接收配置对象(Configuration)导成DDL,把对象类导成表
SchemaExport export = new SchemaExport(cfg);
//打印到控制台,并输入到数据库
export.create(true, true);
5.添加log4j.propertes文件
& 提示给开发者相应的错误信息,使开发变得简单!
### 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
### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.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
6.创建类Client类
& &通过运行此类,向创建好的用户表中添加数据信息。
package com.tgbnode.
import java.util.D
import org.hibernate.S
import org.hibernate.SessionF
import org.hibernate.cfg.C
public class Client {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//建立SessionFactory
SessionFactory factory = cfg.buildSessionFactory();
//取得session
Session session =
session = factory.openSession();
//开启事务
session.beginTransaction();
User user = new User();
user.setName(&张三&);
user.setPassword(&123&);
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//保存User对象
session.save(user);
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
if (session != null) {
if (session.isOpen()) {
//关闭session
session.close();
下面我们来测试一下,运行MySql的dos文件:
& & 至此Hibernate第一个实例就做完了,不知道您对Hibernate是否有了一定的了解了呢,知识就是在反复的折腾中弄懂的,至今我对Hibernate也只有皮毛的理解,还需要通过项目来达到熟练,继而精通!不管如何只要相信就会成功!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:943664次
积分:13330
积分:13330
排名:第522名
原创:167篇
评论:2856条
(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(6)(4)(4)(4)(4)(4)(4)(4)(5)(8)(7)(5)(3)(9)(4)(5)(4)(7)(4)(3)(3)(6)(3)(5)(3)(1)(1)hibernate使用schemaExport生成数据表报错,请问该怎么解决_百度知道
hibernate使用schemaExport生成数据表报错,请问该怎么解决
提问者采纳
at mx.ExportDB.main(ExportDB.java:9)看数main函数数据库建表语句 几面看: 数据库面,数据库驱架包确定导入 HIBERNATE配置文件确配置 XXX XXX XXX XXX true 数据库言 thread org.hibernate.cache.NoC
来自团队:
其他类似问题
为您推荐:
表报的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁利用hibernate中的SchemaExport生成数据表_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
利用hibernate中的SchemaExport生成数据表
上传于||文档简介
&&h​i​b​e​r​n​a​t​e
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 schemaexport 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信