当前位置:Gxlcms > 数据库问题 > hibernate_5.2.9与mysql_5.7.17碰到的一系列错误。。。

hibernate_5.2.9与mysql_5.7.17碰到的一系列错误。。。

时间:2021-07-01 10:21:17 帮助过:11人阅读

<property name="hibernate.hbm2ddl.auto">create</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.show_sql">true</property> <mapping resource="com/model/User.hbm.xml"/> </session-factory> </hibernate-configuration>

  就是用蓝色标出的那一行(红色那一行待会儿再说)!一定要注意,如果是5.2以后版本的mysql,方言要写成org.hibernate.dialect.MySQL5InnoDBDialect而不是org.hibernate.dialect.MySQLInnoDBDialect;为啥嘞,看一下控制台显示的sql语句就知道了,mysql背锅。。。

6.建立一个包---com.model,包中建立User类,代码如下:

package com.model;


public class User {
	private int id;
	private String username;
	private String password;
	private String nickname;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	
}

  7.在com.model包中建立Users.hbm.xml,要与user类发生摩擦哦!

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-4-4 15:59:01 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="com.model.User" table="USER">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="USERNAME" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" />
        </property>
        <property name="nickname" type="java.lang.String">
            <column name="NICKNAME" />
        </property>
    </class>
</hibernate-mapping>

  8.在---com.test包中编写测试类,测试一下hibernate与mysql是否发生(性)关系,哈哈!

package com.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.model.User;

public class TestUser {

	@Test
	public void test01() {
		
		Configuration configuration = new Configuration().configure();
		SessionFactory sessionFactorn = configuration.buildSessionFactory();
		Session session = sessionFactorn.getCurrentSession();
		//开启事务
		session.beginTransaction();
		//实例化用户
		User u = new User();
		u.setUsername("hls");
		u.setNickname("韩菱纱");
		u.setPassword("123");
		//保存数据
		session.save(u);
		//提交事务;
		session.getTransaction().commit();

	}

}

  

  划重点了!!!红色背景部分为hibernate——5.X版本生成session的方式,而4.X版本生成session的方式需要ServiceRegistry。还记得上边的红字么,当5.X以上版本需要在配置文件中添加。通过这种方式生成的session在transaction.commit();后会自动关闭!

9.运行此测试类,发现可以用了!伦家是萌新,大神给点指导意见,萌新可以按照我的方法一试!么么~~~

补图:

文件结构图---

技术分享

运行结果图---

技术分享

技术分享

hibernate_5.2.9与mysql_5.7.17碰到的一系列错误。。。

标签:nic   root   ext   size   session   ges   需要   自动   sql语句   

人气教程排行