【新手】hibernate4配置自动建立数据库表时Unsuccessful

本文记录了使用Hibernate4配置过程中遇到的建表失败问题及解决方案。通过调整数据库方言设置,从MySQLInnoDBDialect更改为MySQL5InnoDBDialect,解决了因语法不兼容导致的建表错误。
本渣渣今天在配置hibernate4时按照某教程配置完后发现一直无法建立表
配置log4j输出后发现其中的建表语句
HHH000388: Unsuccessful: create table USERS (ID integer not null auto_increment, NAME varchar(50) not null, ADDRESS varchar(50), DATE date, primary key (ID) ) type=InnoDB
上配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!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.username">root</property>
		<property name="connection.password">123456</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///db_test</property>
		
		<!-- 配置 hibernate 的基本信息 -->
		<!-- hibernate 所使用的数据库方言 -->
		<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>		
		
		<!-- 执行操作时是否在控制台打印 SQL -->
		<property name="show_sql">true</property>
	
		<!-- 是否对 SQL 进行格式化 -->
		<property name="format_sql">true</property>
	
		<!-- 指定自动生成数据表的策略 -->
		<property name="hbm2ddl.auto">update</property>
		
		<!-- 指定关联的 .hbm.xml 文件 -->
		<mapping resource="com/demo/Users.hbm.xml"/>
	
	</session-factory>

</hibernate-configuration>

其实我们把生成的建表语句在mysql上运行一次就可以知道,是无法成功建表的,是因为type=innoDB 这个语法已经不适用mysql5.0后的版本
所以在数据库方言中应该改为  org.hibernate.dialect.MySQL5InnoDBDialect
而不是原来的org.hibernate.dialect.MySQLInnoDBDialect

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值