一、首先介绍我使用的软件和环境:
1.软件:eclipse Oxygen.1a
mysql5.7.19
2.环境:jdk1.8
二、下载hibernate架包,log4j日志类包,连接mysql的数据库驱动
三、创建一个java project名为HibernateDemo的项目
然后导入hibernate包,log4j日志类包,连接mysql的数据库驱动
具体操作:
点击菜单栏windows->preferences->java->bulid path->User Libraries
然后new->输入hibernate(不勾选下边的选择框)->add external jars(这个时候选择所有包的位置,将下载的hibernate中required中的jar文件全部加载,也可以加上lod4j日志类包和数据库驱动)
然后在项目上右键选择bulid path->add libraries->user libraries
然后选择刚才创建的hibernate
这时hibernate 就加载进来了
四、启动mysql,在mysql创建student测试表
五、创建一个hibernate.model的包,新建一个Student的类
package hibernate.model;
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
六、
然后创建hibernate配置文件hibernate.cfg.xml,在src目录下创建这个文件,然后将参考文档中的配置copy进去(如下:)修改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="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!-- hibernate自带JDBC 连接池,暂时不用注释掉 -->
<!-- <property name="connection.pool_size">1</property> -->
<!-- 改成MySqlDialect(mysql的sql语句) -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<!-- <property name="current_session_context_class">thread</property> -->
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- 打印出所有的sql -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<!-- <property name="hbm2ddl.auto">update</property> -->
<mapping resource="hibernate/model/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
七、然后在hibernate.model(跟实体类放一起)下创建文件Student.hbm.xml,从参考文档中copy修改
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="hibernate.model">
<class name="Student" table="student"><!-- 如果表名与类名相同可以不用写table属性 -->
<!-- 用id映射主键 -->
<id name="id" column="id"> <!-- 列名相同可以不指定column属性 -->
</id>
<property name="name" column="name"></property>
<property name="age"></property>
</class>
</hibernate-mapping>
八、然后创建一个包test创建类StudentTest
package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import hibernate.model.Student;
public class StudentTest {
public static void main(String[] args){
Student s = new Student();
s.setId(1);
s.setName("test1");
s.setAge(1);
Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();// 这里会提示deprecated,但是按着参考文档会报错
Session session = sf.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
sf.close();
}
}
九、右键运行,得到结果
十、遇到的问题及解决
问题:点击运行,出来下面的结果
解决:单击工具栏Run图标右边的下拉箭头,Run Configurations...左边Java Application向下是工程文件名,右击不要的项,选择Delete,就好了