1.创建一个工程名为 Hibernate 的工程
2.导 .jar 包:
路径:D:\SSH环境搭建\tools\hibernate-release-4.3.8.Final\lib\required
3.配置文件hibernate.cfg.xml:
路径:D:\SSH环境搭建\tools\hibernate-release-4.3.8.Final\project\etc下的 hibernate.cfg.xml
4.创建持久化类
5.映射文件 .hbm.xml:
映射文件和持久化类在同一个包下。
路径:D:\SSH环境搭建\tools\hibernate-release-4.3.8.Final\documentation\manual\en-US\html_single
例如:
持久化类:
1 package org.hibernate.tutorial.domain; 2 3 public class Person { 4 5 private Long id; 6 private int age; 7 private String firstname; 8 private String lastname; 9 10 public Person() {} 11 12 // Accessor methods for all properties, private setter for 'id' 13 14 }
映射文件:
<hibernate-mapping package="org.hibernate.tutorial.domain"> <class name="Person" table="PERSON"> <id name="id" column="PERSON_ID"> <generator class="native"/> </id> <property name="age"/> <property name="firstname"/> <property name="lastname"/> </class> </hibernate-mapping>
配置文件:(连接的是 mysql 数据库)
<?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> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.username">root</property> <property name="connection.password">123</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <mapping resource="com/bean/Users.hbm.xml"/> <mapping class="com.bean.Customer" />
<mapping resource="org/hibernate/tutorial/domain/Person.hbm.xml"/>
<!-- <mapping resource="org.hibernate.tutorial.domain.Person.hbm.xml"/> --> </session-factory> </hibernate-configuration>
或
测试类:
1 // 1读取并解析配置文件 2 Configuration cfg = new Configuration().configure(); 3 // 2创建SessionFactory 4 StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() 5 .applySettings(cfg.getProperties()).build(); 6 SessionFactory sessionFactory = cfg 7 .buildSessionFactory(serviceRegistry); 8 // 3拿到一个会话 9 Session session =sessionFactory.getCurrentSession(); 10 // 4开始一个事务 11 session.beginTransaction(); 12 13 CarUser cu=new CarUser(); 14 cu.setUserName("sa"); 15 cu.setUserPwd("sa"); 16 // 5操作数据库 17 session.save(cu); 18 // 6提交事务 19 session.getTransaction().commit(); 20 21 // 新增: session.save(cu); 22 // 删除:session.delete(cu); 23 // 修改:session.update(cu);session.saveOrUpdate(cu); 24 // 查询:session.get(CarUser.class, 3); 25 // session.load(CarUser.class, 3); 26 // 区别:get(),立即发出SQL语句,和数据库交互。 27 // load(),在使用查询对象时发出SQL语句,在进行交互。