hibernate4连接mysql自动创建表之错误

我在学习Hibernate的过程中,遇到了这样一个错误:JUnit测试通过,但是数据库中却没有创建一个表,控制台的错误信息如下:

HHH000388: Unsuccessful: create table t_user (user_id bigint not null auto_increment, card_number varchar(30), card_type varchar(20), company_name varchar(200), email varchar(100), gender varchar(100) not null, identity varchar(20), job_name varchar(60), mobile varchar(30) not null, password varchar(100) not null, real_name varchar(100) not null, primary key (user_id)) type=InnoDB

2014-11-10 10:27:10,749 ERROR (org.hibernate.tool.hbm2ddl.SchemaUpdate:237) - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘type=InnoDB‘ at line 14

2014-11-10 10:27:10,756 ERROR (org.hibernate.tool.hbm2ddl.SchemaUpdate:236) - HHH000388: Unsuccessful: create table t_word (word_id bigint not null auto_increment, content longtext not null, create_date datetime, modify_date datetime, title varchar(100) not null, author_id bigint, primary key (word_id)) type=InnoDB

2014-11-10 10:27:10,763 ERROR (org.hibernate.tool.hbm2ddl.SchemaUpdate:237) - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘type=InnoDB‘ at line 9

2014-11-10 10:27:10,767 ERROR (org.hibernate.tool.hbm2ddl.SchemaUpdate:236) - HHH000388: Unsuccessful: create table t_wordreply (reply_id bigint not null auto_increment, content longtext not null, reply_date datetime, replier_id bigint, word_id bigint, primary key (reply_id)) type=InnoDB

可以看到自后都是type=InnoDB,网上搜索了之后,原来是type=InnoDB 是5.0之前使用的,我的数据库是5.5的

这个时候需要把hibernate中mysql的方言改一下,

原来的:hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

改成:hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

时间: 2024-10-06 04:08:44

hibernate4连接mysql自动创建表之错误的相关文章

Hibernate连接mysql数据库并自动创建表

天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 所以说,Hibernate讲白了就是简化了与数据库之间的操作,那么要玩转它自然就得连接上数据库咯.(与Hibernate对应的orm框架还有Mybatis,只不过M

Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是由于MySQL不准许远程连接. 修改方法如下: 1:在服务端MySQL文件夹下找到my.ini文件.修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项) 2:重新启动MySQL服务. 测试连接情况: 如果没有给

hibernate自动创建表

配置自动创建表: <prop key="hibernate.hbm2ddl.auto">update</prop>//首次创建项目时用,项目稳定后一般注释 这里有是个值: update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表:如果表里缺少列,则自动添加列. 还有其他的参数: create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失. create-d

Mybatis自动创建表/更新表结构

最近有小伙伴问我mybatis有没有自动创建表结构的功能,因为他们之前一直使用hibernate用习惯了,理所当然的认为,在实体类上配置下注解或者写写映射文件,系统启动后就可以自动创建表. 我只能很遗憾的告诉他,mybatis并没有这个功能,看他兴致阑珊的样子,我只能安慰他,就算没有这功能,我们可以自己开发啊~~ 所以就有了下面这套系统,已开源大家可以下来看看~~ Mybatis_BuildTable_V0.2 https://git.oschina.net/sunchenbin/Mybatis

hibernate 项目启动时总会自动创建表

hibernate 项目启动时总会自动创建表,造成以下错误 Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: 名称已由现有对象使用 经验证,是方言使用错误导致的.项目使用的数据库版本为Oracle11g,方言应该使用  org.hibernate.dialect.Oracle10gDialect 修改配置如下: jpa: show-sql: true database-platform: org.hibernate.dialect.O

hibernate自动创建表报表不存在

在hibernate.cfg.xml配置了<property name="hibernate.hbm2ddl.auto">update</property>自动创建表,但是项目启动会报 table doesn't exists 可能原因是主键策略设置的是native 而类里的id类型是String 这个uid要换成Integer 原文地址:https://www.cnblogs.com/suni/p/8707538.html

MySql数据库创建表

3.3.MySql数据库创建表 创建5个表: UserInfo用户基础表 Role 角色表 MenuInfo 菜单即控制表 Relation_Role_Menu 角色对应菜单关系表 RelaTion_User_Role  用户角色关系表 Depart 部门信息表 表名:USERINFO 用户信息表 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 ID INT 是 否 主键 2 USER_NAME VARCHAR 100 是 用户姓名 3 USER_ID VARCHAR

通过PHP连接MYSQL数据库 创建数据库 创建表

通过PHP连接MYSQL数据库  $conn = mysql_connect("localhost","root","password") or die("无法连接数据库");  mysql_select_db("table" ,$conn) or die ("找不到数据源"); 通过PHP创建MYSQL数据库 $conn = mysql_connect("localhost&

Qt编译mysql以及创建表后进行导入操作

鉴于许多同学对Qt编译myql总是不能成功,出现各种问题,今天特此写出本教程,希望能够帮到需要的同学. 首先,需要明白编译的目的和原理. 目的:Qt 5.2版本以前都是不带mysql驱动的,所以需要进行编译mysql数据库驱动,只有编译完成后才能被Qt加载上.如果你安装的是Qt5.2以后版本的,那就不需要了,因为在后来的版本中,Qt官方增加这一模块. 可以在Qt的安装插件目录下查看自己的驱动是否已经存在.例如我的在目录: C:\Qt\4.8.2\plugins\sqldrivers.可以看到当前