小女子初学hibernate求助!高手大侠们请进!

whhushuai 2013-10-09 10:30:34
小女子最近正在自学hibernate!于是手工搭建了一个环境,没用myeclipse等工具,项目目录如下
我自己把所有的java文件都放在了E:\JavaWebApp\test\WEB-INF\classes下面,然后字节码都放在了
E:\JavaWebApp\test\WEB-INF\classes\com\下面,如下图:



我想用hibernate的hbm2ddl工具自动创建表,可是不成功!控制台根本不显示建表语句!数据库也没有新表!

hibernate.cfg.xml文件内容如下:
<?xml version="1.0"?>
<!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="connection.url">
jdbc:mysql://localhost:3306/javaweb
</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.username">
root
</property>
<property name="connection.password">
root
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.show_sql">
true
</property>
<property name="hbm2ddl.auto">
validate
</property>
<mapping resource="com/javaweb/ch17/hibernate/Product.hbm.xml"/>
</session-factory>
</hibernate-configuration>

polo类内容如下:
package com.javaweb.ch17.hibernate;

public class Product
{
private String id;
private String name;
private double price;

public Product()
{

}

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 double getPrice()
{
return price;
}

public void setPrice(double price)
{
this.price = price;
}
}

Product.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.javaweb.ch17.hibernate.Product">
<id name="id">
<generator class="assigned"></generator>
</id>
<property name="name"></property>
<property name="price"></property>
</class>
</hibernate-mapping>

主文件内容如下
package com.javaweb.ch17.hibernate;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class CreateDB
{
public static void main(String[] args)
{
Configuration cfg = new Configuration().configure();

SchemaExport sExport = new SchemaExport(cfg);

sExport.create(true, true);
}
}

结果一运行,如下图:


控制台没有任何显示,正常的话应该显示建表语句啊!然后数据库中也没有表,请高手帮忙到底错哪里了!
...全文
209 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 whhushuai 的回复:
没用myeclipse等工具
  • 打赏
  • 举报
回复
高手都去你空间看看有没有照片了
whhushuai 2013-10-09
  • 打赏
  • 举报
回复
不能沉底 高手们都去哪里了呢!
  • 打赏
  • 举报
回复
引用 4 楼 FishOfThink 的回复:
<property name="hbm2ddl.auto"> validate </property> 自动创建表的话,这里改成update或create
validate是校验数据库 但是只是校验而已 并不实际生成 如果有不一致的 会抛出异常.不做更新数据库操作 create 是每次都会生成数据库 并且以前的数据会丢失. 是先删除全部表 在创建 update 是校验数据库是否一致 不同步则更新一致
老猿的书房 2013-10-09
  • 打赏
  • 举报
回复
<property name="hbm2ddl.auto"> validate </property> 自动创建表的话,这里改成update或create

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧