我是靠谱客的博主 辛勤星月,最近开发中收集的这篇文章主要介绍Hibernate-连接MySQL,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

hibernate连接mysql 的时候报空指针异常 ,后来调着调着就变成
Dialect class not found: org.hibernate.dialect.MYSQLDialect
原因:org.hibernate.dialect.MySQLDialect
写成:org.hibernate.dialect.MYSQLDialect
对比了快半个钟才找出来的!

<?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">
<!-- Generated by MyEclipse Hibernate Tools.
-->
<hibernate-configuration>
<session-factory>
<property name="dialect">
<!-- org.hibernate.dialect.Oracle9Dialect -->
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.driver_class">
<!--
oracle.jdbc.driver.OracleDriver -->
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
<!-- jdbc:oracle:thin:@localhost:1521:orcl -->
jdbc:mysql://localhost:3306/users
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- <property name="myeclipse.connection.profile">qyldata</property> -->
<property name="show_sql">true</property><!-- 打印SQL语句 -->
<!--
<mapping resource="/hibernate_1/src/Users.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/District.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/Street.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/Carport.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/Car.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/Employee.hbm.xml" />
<mapping resource="cn/qyl/hiber/entity/Project.hbm.xml" />
<mapping resource="cn/qyl/film/entity/FilmInfo.hbm.xml" />
<mapping resource="cn/qyl/film/entity/FilmType.hbm.xml" />
-->
<mapping resource="Users.hbm.xml" />
</session-factory>
</hibernate-configuration>

现在:

org.hibernate.exception.SQLGrammarException: Cannot open connection
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'users'

原因分析:jdbc:mysql://localhost:3306/users中的users为mysql中的数据库,而我在navicat中创建的数据库users并没存在,后来在命令行中查询得知,其实我的表创建在mysql中,于是把配置改为:jdbc:mysql://localhost:3306/mysql就不会报这个错。
现在:

Hibernate: insert into Users (NAME, PASSWORD, TELEPHONE, USERNAME, ISADMIN) values (?, ?, ?, ?, ?)
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value

建表句子:

CREATE TABLE `users` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`telephone` varchar(255) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
`isadmin` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我的主键ID是用配置

 <id name="id" type="java.lang.Integer">
<column name="ID" /><!--
precision="4" scale="0" -->
<generator class="native" > </generator><!-- 主键生成策略 -->
</id>

自动生成的,但是至于为什么报这个错,我还懵逼着!
主键生成策略:

native: Field 'id' doesn't have a default value
uuid : IllegalArgumentException occurred while calling setter of Users.id
assigned:成功。 


分析:UUID我记得是随机生成位的,但是我的主键长度设置为位,所以报错。
native为什么报错至今懵逼!

最后

以上就是辛勤星月为你收集整理的Hibernate-连接MySQL的全部内容,希望文章能够帮你解决Hibernate-连接MySQL所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部