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为什么报错至今懵逼!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值