Hibernate是一个开放源代码的ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装,Java程序员可以使用面向对象的编程思维来操纵数据库,它通过对象属性和数据库表字段之间的映射关系,将对象持久化到数据库中,可以说Hibernate就是将数据从对象形式转换成表字段后存入数据库的一种框架。hibernate移植非常好,因为它用到了方言配置,可以根据不同的数据库自动发出不同的sql。
一、使用IDEA 新建一个project,选中Hibernate,IDEA里使用maven管理jar包,所有需要的jar包maven都会为你下载。特别方便。
二、使用MySql创建数据库hibernate并且创建表。
create database hibernate;
use hibernate;
create table Teacher(id int primary key,name varchar(20),title varchar(10));
三、创建Teacher实体类,类中使用了annotation注解。
package com.example.hibernate;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
* Created by zhangdehua on 2016/11/21.
*/
//以下为annnotation注释
@Entity
public class Teacher {
private int id;
private String name;
private String title;
@Id //声明主键
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 String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
四、写测试类:
package test;
import com.example.hibernate.Teacher;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* Created by zhangdehua on 2016/11/21.
*/
public class TeacherTest {
public static void main(String[] args){
Teacher t = new Teacher();
t.setName("张德华");
t.setTitle("中级");
Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
sf.close();
}
}
五、配置Hibernate.cfg.xml配置文件:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!--数据库连接的URL,hiber为数据库名字--> <property name="hibernate.connection.url" >jdbc:mysql://localhost:3306/hibernate</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username" >root</property> <property name="hibernate.connection.password" >123456</property> <!-- DB schema will be updated if needed --> <!--Hibernate方言--> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <!--设置为update时如果没有表就先建立表,有表的话进行更新。--> <property name="hbm2ddl.auto">update</property> <!--显示sql语句,在调试的时候设置为true便于程序的调试,发布应用的时候设置为false,减少信息的输出量,提高关键的运行性能--> <property name="show_sql">true</property> <!--以下为注解后的实体的mapping配置方法--> <mapping class="com.example.hibernate.Teacher" /> </session-factory> </hibernate-configuration>
运行测试之后可以把数据插入数据库,但是运行第二次报错,执行不了sql语句。