hibernate5.4入門程序


新建Java工程,目錄結構如下:其中jar包是目錄中所有jar包和

驅動包兩部分組成,別忘了最后buildpath一下

其中Student.java代碼如下(就是一個簡單java類)

package beans;

public class Student {
private Integer id;
private String name;
private int age;
private double score;
public Student() {
super();
}
public Student(String name, int age, double score) {
super();
this.name = name;
this.age = age;
this.score = score;
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", score=" + score + "]";
}

}

Student.hbm.xml代碼如下

<?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>
<!-- 類到表的映射 屬性到字段的映射 -->
<class name="beans.Student" table="t_student">
<id name="id" column="tid">
<generator class="native"/>
</id>
<property name="name" column="tname"/>
<property name="age" column="tage"/>
<property name="score" column="tscore"/>
</class>
</hibernate-mapping>

<?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>
<!-- 類到表的映射 屬性到字段的映射 -->
<class name="beans.Student" table="t_student">
<id name="id" column="tid">
<generator class="native"/>
</id>
<property name="name" column="tname"/>
<property name="age" column="tage"/>
<property name="score" column="tscore"/>
</class>
</hibernate-mapping>

 hibernate.cfg.xml代碼如下:

<?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>
<!-- 類到表的映射 屬性到字段的映射 -->
<class name="beans.Student" table="t_student">
<id name="id" column="tid">
<generator class="native"/>
</id>
<property name="name" column="tname"/>
<property name="age" column="tage"/>
<property name="score" column="tscore"/>
</class>
</hibernate-mapping>

MyTest.java代碼如下:

package test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.jupiter.api.Test;

import beans.Student;

public class MyTest {
@Test
public void testSave(){
//1.加載主配制文件
// Configuration configure = new Configuration().configure();
Configuration configure = new Configuration().configure().addClass(Student.class);
//2.創建session工廠
// SessionFactory sessionFactory = configure.buildSessionFactory();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configure.getProperties()).build();
SessionFactory sessionFactory = configure.buildSessionFactory(serviceRegistry);
//3.獲取session
Session session = sessionFactory.openSession();
try{
//4.開啟事務
Transaction t = session.beginTransaction();
//5.操作
Student student = new Student("張三",23,93.5);
session.save(student);
//6.事務提交
t.commit();
Student student2 = session.get(Student.class, 1);
System.out.println(student2);
}catch(Exception e){
e.printStackTrace();
//7.事務回滾
session.getTransaction().markRollbackOnly();
}finally {
session.close();
sessionFactory.close();
}
}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM