Hello,新手来报到,一个基础超级薄弱的程序猿为了搭建Hibernate真的煞费苦心!还顺便解决了几个XAMPP打开Mysql遇见的问题,一会新开一个文章再写,总之用了很久很久的时间才完成大神们半个小时就搞定的问题!
进入正题
(1)首先要导入Hibernate环境所需要的jar包(hibernate-release-5.2.10.Final\hibernate-release-5.2.10.Final\lib\required)+mysql包+日志jar包(因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,所以需要导入其他日志的jar包。)
(2)在src!!划重点,一定要是在src下写核心配置文件hibernate.cfg.xml,必须是这个名字,如下所示
注意,mapping resource是写完映射文件后再加进去的,在etc文件夹下有hibernate.cfg.xml,另外小窍门,hibernate.properties文件中有配置需要用的数据,我用的是mysql
<?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
">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping resource="demo/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
(3)创建实体类User
package demo;
public class User {
private int id;
private String username;
private String password;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(){
}
}
(4)配置实体类和数据库表的对应关系(映射关系)
创建xml格式的配置文件, 在实体类所在包里面创建,实体类名称.hbm.xml
关于如何创建hbm.xml也确实是煞费苦心,急的掉了好几把头发,具体如下
然后finish就好啦
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="demo.User" table="t_user">
<id name="id" column="ID" type="int">
<generator class="increment"/>
</id>
<property name="username" column="username" type="java.lang.String" />
<property name="password" column="password" type="java.lang.String" />
<property name="age" column="age" type="int"/>
</class>
</hibernate-mapping>
(5)最后写一个user测试类
package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import demo.User;
public class UserTest {
public static void main(String[] args) {
Configuration conf = new Configuration().configure();//1、读取配置文件
SessionFactory sf = conf.buildSessionFactory();// 2、创建SessionFactory
Session session = sf.openSession();// 3、打开Session
Transaction tx = null;
try{
tx = session.beginTransaction();// 4、开始一个事务
// 5、持久化操作
User user = new User();
user.setUsername("bxy");
user.setAge(22);
user.setPassword("1514010601");
session.save(user);
tx.commit();// 6、 提交事务
}catch(Exception e){
if (null!=tx){tx.rollback();}
e.printStackTrace();
}finally{
session.close();// 7、关闭Session
}
}
}
运行他就会看到你的显示台biubiubiu!~
这就是运行成功的标志,这时候只要去数据库刷新一下就可以看到输入的数据了
当当当~第一个orm小demo运行成功
友情提示:在映射文件中一定一定要注意表的名字和属性的拼写嗷,一个不注意各种报错而且很难找到错误,一定要认真认真再认真!