Hibernate是一種ORM框架,全稱爲 Object_Relative DateBase-Mapping,在Java對象與關係數據庫之間建立某種映射,以實現直接存取Java對象!
O代表的是Objcet
R代表的是Relative
M代表的是Mapping
當插入數據的時候,就將JavaBean對象拆分,拼裝成SQL語句
當查詢數據的時候,用SQL把數據庫表中的列組合,拼裝成JavaBean對象
也就是說:javaBean對象和數據表中的列存在映射關係!如果程序能夠自動生成SQL語句就好了…那麼Hibernate就實現了這個功能!
簡單來說:我們使用Hibernate框架就不用我們寫很多繁瑣的SQL語句,從而簡化我們的開發。
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="student")
public class Student {
@Id
@Column(name="id")
private int id;
@Column(name="first_Name")
private String firstName;
@Column(name="last_Name")
private String lastName;
@Column(name="email")
private String email;
public Student() {
}
public Student(String firstName, String lastName, String email) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Student [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", email=" + email + "]";
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.luv2code.hibernate.demo.entity.Student;
public class CreateStudentDemo {
public static void main(String[] args) {
//create session factory
SessionFactory factory = new Configuration()
.configure("hibernate.cfg.xml")
.addAnnotatedClass(Student.class)
.buildSessionFactory();
//create session
Session session = factory.getCurrentSession();
try {
// use the session object to save java object
System.out.println("Creating new student obj...");
Student tempStudent = new Student("Vin","WAll","Vin@163");
//create a student object
session.beginTransaction();
//start a transaction
System.out.println("Saving the Student...");
session.save(tempStudent);
//commit transaction
session.getTransaction().commit();
System.out.println("Done");
}
finally {
factory.close();
}
}
}
SessionFactory
SessionFactory–>Session的工廠,也可以說代表了hibernate.cfg.xml這個文件…hibernate.cfg.xml的就有這麼一個節點
openSession方法:創建一個Session對象
getCurrentSession方法:創建Session對象或取出Session對象
Session
Session是Hibernate最重要的對象,Session維護了一個連接(Connection),只要使用Hibernate操作數據庫,都需要用到Session對象
Reference:
https://www.cnblogs.com/mq0036/p/8522150.html