一、什么是hibernate?
hibernate是开源的、用于封装数据访问层的组建,我们称之为数据访问层框架(或持久层框架)
之前我们通过JDBC/SQL语句从数据库中访问/操作数据,而hibernate就是封装了这写操作,专门用于数据访问层的组件技术
二、需要的jar包
Hibernate: hibernate3.jar
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
slf4j-api-1.5.8.jar
Slf4j: slf4j-nop-1.5.8.jar
JDBC: mysql-connector-java-5.1.16-bin.jar
三、创建数据库并建表
create database hibernate; create table student (id int primary key,name varchar(20),age int);
四、准备hibernate的配置文件
该文件用于存储数据库的链接信息及hibernate的配置信息,命名为hibernate.cfg.xml
<?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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">******</property> <!-- JDBC 链接池 --> <property name="connection.pool_size">1</property> <!-- SQL 方言 --> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> <!-- 二级缓存 --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- 是否在控制台显示SQL语句 --> <property name="show_sql">true</property> <!-- hibernate maping to ddl 是否让hibernate自动生成建表语句 --> <property name="hbm2ddl.auto">update</property>
<!--关联印射文件 -->
<mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/> </session-factory> </hibernate-configuration>
五、建立实体类Student
package com.xxx.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; } }
建立Student的印射文件:student.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.xxx.model.Student" table="student"> <id name="id"></id> <property name="name"></property> <property name="age"></property> </class> </hibernate-mapping>
修改hibernate.cfg.xml中的关联印射文件
<mapping resource="com/xxx/model/Student.hbm.xml"/>
然后就可以了,创建一个测试类StudentTest
package com.xxx.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import com.liguobing.model.Student; public class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setId(1); s.setName("SSS"); s.setAge(40); Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); Transaction t = session.getTransaction(); t.begin(); session.save(s); t.commit(); session.close(); } }
运行一下,就可以在控制台看到
数据库看一下