时间:2021-07-01 10:21:17 帮助过:11人阅读
就是用蓝色标出的那一行(红色那一行待会儿再说)!一定要注意,如果是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语句