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

写在前边的话:看视频,看书,关于hibernate与mysql都是一些旧版本的资料。现在去找那些hibernate与mysql又不是那么容易,于是就按照旧版本的方法处理新版本的问题,出了一大堆乱子!问度娘,问谷狗终于整好了,简单介绍一下自己的心路历程吧。

IDE版本:spring-tool-suite-3.8.2.RELEASE-e4.6.1-win32-x86_64;

hibernate版本:hibernate-release-5.2.9.Final;

mysql版本:mysql-5.7.17-winx64;

1.首先建一个简单的Java项目,主要为了学习hibernate,应该不用建动态web项目吧,博主风骚的给项目取了一个名字,叫做hibernate,哈哈;

2.在hibernate中新建一个lib文件夹,用来放置需要的jar包;

3.把\hibernate-release-5.2.9.Final\lib\required包中的10个可爱的jar包复制到lib文件夹下,还没完事呢。。。再找到我收藏许久的mysql-connector-java-5.1.40-bin.jar包,同样也拷进lib文件夹下,该包已经和mysql_5.7.17发生了多次基情的碰撞,肯定没问题;

4.选中这11个包,右键bulid path-add to build path加到开发环境里;

5.伦家要开始配置hibernate.cfg.xml了,在这里,出现了第一个不兼容的问题----mysql方言问题;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">123456</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <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.运行此测试类,发现可以用了!伦家是萌新,大神给点指导意见,萌新可以按照我的方法一试!么么~~~

补图:

文件结构图---

运行结果图---

时间: 2025-01-02 17:02:20

hibernate_5.2.9与mysql_5.7.17碰到的一系列错误。。。的相关文章

致IT同仁 — IT人士常犯的17个职场错误

记得刚参加工作时(那是97年),中国的IT刚刚兴起,那时,作为一个IT人士是一件很光荣的事,而那时的我正在做电气和电子相关的工作.99年第一次跳槽,进入了IT行业做软件开发.至今,中国的IT已经走过了十多年.但昔日的"光荣一员"却成为了现在的"IT农民工",这究竟是怎么了?是中国的IT发展已经很好了所造成的吗?不是!在我看来中国的IT还比较的原始,还有很大的提升空间.我认为造成这一切的都是我们自己,是人!是我们的意识和方法问题.还记得刚从事软件行业时,当时有一句话很

碰到这个SB错误,&#39;Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.点办

After launching MacVim you may get this annoying error message:'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.' To remove this you have to install ctags which you can download from http://ctags.sf.net.After yo

Centos 6.5_64源码安装mysql_5.6.17

mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具体的cmake编译参数可以参考mysql官网文档(※非常重要)http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html [[email protected] /]# cat /etc/redhat-release CentOS release 6.5 (Final) (1)下载源码包 [[email protected

MySQL_5.7.17的安装与配置

1.下载安装包 https://dev.mysql.com/downloads/mysql/ 2.解压MySQL压缩包 下载完成后解压,将其放到想要安装的目录下,例如:D:\ruanjian\mysql-5.7.17-winx64 3.创建并修改配置文件my.ini 新建一个my.ini配置文件,原始的my-default.ini配置文件只是个模版,不要在里面改动. my.ini的内容如下: mysql] default-character-set=utf8 [mysqld] port = 33

Qt 中碰到的一些错误 求指点

刚刚学Qt,碰到的错误也不是很多 1. 包含了<QtGui>后,编译的时候仍报错,说有很多控件的头文件找不到. 解决方法:  我用的qt版本是5.x.据说qt4的时候,控件的头文件定义都集成在QtGui中.但是在qt5中,是集成在<QtWidgets>中的.直接包含它就好. 如果再不行,可能就是加载不到控件,可以在.pro文件中加入 "QT += widgets" 2. 信号有传递参数的作用,只用声明,不用实现.否则会报错.因为moc规则生成了相关的代码,你自己

项目中碰到的各种错误

ios小白,记录下项目中碰到的各种异常错误 1.NSGenericException 出现这个异常是因为我在快速枚举 for in 语句中对array进行了删除操作. 正确的移除方法如下 a.创建一个NSMutableIndexSet b.遍历数组保存要删除的index  c.调用 removeObjectsAtIndexs 接口

Python学习-17.Python中的错误处理(二)

错误是多种多样的,在 except 语句中,可以捕获指定的异常 修改代码如下: 1 import io 2 3 path = r'' 4 mode = 'w' 5 6 try: 7 file = open(path,mode) 8 str = file.read() 9 print(str) 10 except FileNotFoundError as e: 11 print(e) 12 except io.UnsupportedOperation as e: 13 print(e) 14 fi

PLSQL碰到pls-00103的错误解决办法

CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS AS PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);END PKG_SHOW_CUST_DETAILS: CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS AS PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2) IS BEGIN DBMS_OUTPUT.PUT_LI

asp.net mvc 碰到 XML 解析错误:找不到根元素 位置

具体报错信息如下: XML 解析错误:找不到根元素 位置:moz-nullprincipal:{4a1d2b7c-6d07-468e-9df9-2267a0422c93} 行 1,列 1: 网上给出的解决方案: js跨域操作时(网上搜,比较详细) 看着貌似有点沾边,结果我把浏览器缓存清除之后,就没有再出现这个问题了