- 搭建环境
- 导入hibernate所需要的jar包
- 创建实体类:javabean
1 package cn.kispine.entity; 2 3 public class User { 4 //hibernate中需要实体类中有一个属性值最为唯一值 5 private int id; 6 private String username; 7 private String password; 8 private String address; 9 public int getId() { 10 return id; 11 } 12 public void setId(int id) { 13 this.id = id; 14 } 15 public String getUsername() { 16 return username; 17 } 18 public void setUsername(String username) { 19 this.username = username; 20 } 21 public String getPassword() { 22 return password; 23 } 24 public void setPassword(String password) { 25 this.password = password; 26 } 27 public String getAddress() { 28 return address; 29 } 30 public void setAddress(String address) { 31 this.address = address; 32 } 33 }
- 创建数据库创建表【其实不需要手动创建表,hibernate可以根据配置文件中的对应关系自动创建表】
- 配置数据库与实体的类的一一对应关系(映射关系)
-
- 使用配置文件实现映射关系
- 创建xml格式的配置文件【配置文件的名称和位置没有特殊要求,建议:在实体类包下创建,名称为实体类名.hbm.xml】
- 在xml文件中引入约束
1 <!DOCTYPE hibernate-mapping PUBLIC 2 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- 配置映射关系
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 6 <hibernate-mapping> 7 <!-- 1、配置实体类与表对应 --> 8 <!-- class标签、name属性:实体类的全路径、table属性:数据库表名称 --> 9 <class name="cn.kispine.entity.User" table="tab_users"> 10 <!--2、配置实体类中的唯一字段id与数据库的id对应 --> 11 <!-- name属性:实体类中字段名称、column:生产的表的字段名称 --> 12 <id name="id" column="uid"> 13 <!-- 3、配置数据库表主键的增长策略 :native:自动增长,--> 14 <generator class="native"></generator> 15 </id> 16 17 <!-- 4、配置其他属性和字段的对应关系 --> 18 <property name="username" column="username"></property> 19 <property name="password" column="password"></property> 20 <property name="address" column="address"></property> 21 </class> 22 </hibernate-mapping>
- 创建hibernate核心配置文件【位置必须在src目录下,名称必须为hibernate.cfg.xml】
- 引入约束
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
- hibernate在操作过程中只会加载核心配置文件,其他配置文件不会加载、
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 <!-- 可参考hibernate.propertities文件 --> 6 <hibernate-configuration> 7 <session-factory> 8 <!-- 1、配置数据库信息 --> 9 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 10 <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property> 11 <property name="hibernate.connection.username">root</property> 12 <property name="hibernate.connection.password">root</property> 13 14 <!-- 2、配置hibernate信息 可有可无--> 15 <!-- 是否输出底层sql --> 16 <property name="hibernate.show_sql">true</property> 17 <!-- sql语句是否格式化 --> 18 <property name="hibernate.format_sql">true</property> 19 <!-- 配置是否自动创建表:update:表如果存在则进行更新,不存在就创建表 --> 20 <property name="hibernate.hbm2ddl.auto">update</property> 21 <!-- 配置数据库方言 让hibernate能够识别不同数据库特有的语句 --> 22 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 23 24 <!-- 3、将映射文件放到核心配置文件中 --> 25 <mapping resource="cn/kispine/entity/User.hbm.xml"/> 26 </session-factory> 27 </hibernate-configuration>
- 引入约束
- 添加操作实现
- 第一步:加载hibernate核心配置文件
1 Configuration cfg = new Configuration(); 2 cfg.configure();
- 第二步:创建sessionFactory对象
1 SessionFactory sessionFactory = cfg.buildSessionFactory();
- 第三步:使用sessionFactory对象创建session对象
Session session = sessionFactory.openSession();
- 第四步:开启事务
Transaction tx= session.beginTransaction();
- 第五步:写具体逻辑CRUD操作
1 User user = new User(); 2 user.setAddress("天津市东丽区东五道"); 3 user.setPassword("kispine"); 4 user.setUsername("Kispine"); 5 6 session.save(user);
- 第六步:提交事务
1 tx.commit();
- 第七步:关闭释放资源
1 session.close(); 2 sessionFactory.close();
1 package cn.kispine.test; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.Transaction; 6 import org.hibernate.cfg.Configuration; 7 import org.junit.Test; 8 9 import cn.kispine.entity.User; 10 11 public class Demo { 12 @Test 13 public void testHibernateAdd() { 14 //第一步:加载hibernate核心配置文件 15 Configuration cfg = new Configuration(); 16 cfg.configure(); 17 //第二步:创建sessionFactory对象 18 SessionFactory sessionFactory = cfg.buildSessionFactory(); 19 //第三步:使用sessionFactory对象创建session对象 20 Session session = sessionFactory.openSession(); 21 //第四步:开启事务 22 Transaction tx= session.beginTransaction(); 23 //第五步:写具体逻辑CRUD操作 24 User user = new User(); 25 user.setAddress("天津市东丽区东五道"); 26 user.setPassword("kispine"); 27 user.setUsername("Kispine"); 28 29 session.save(user); 30 //第六步:提交事务 31 tx.commit(); 32 //第七步:关闭释放资源 33 session.close(); 34 sessionFactory.close(); 35 } 36 }
- 第一步:加载hibernate核心配置文件
*********************** KISPINE ***********************