搭建一个Hibernate环境,开发步骤:
1. 下载源码
版本:hibernate-distribution-3.6.0.Final
2. 引入jar文件
hibernate3.jar核心 + required必须引入的(6个) + jpa 目录 + 数据库驱动包
3. 写对象以及对象的映射
Employee.java 对象
Employee.hbm.xml 对象的映射 (映射文件)
4. src/hibernate.cfg.xml 主配置文件
-数据库连接配置
- 加载所用的映射(*.hbm.xml)
5. App.java 测试
public class Employee {
private int empId;
private StringempName;
private DateworkDate;
}
二,Employee.hbm.xml 对象的映射
<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mappingpackage="cn.itcast.a_hello">
<classname="Employee"table="employee">
<!-- 主键,映射-->
<idname="empId"column="id">
<generatorclass="native"/>
</id>
<!-- 非主键,映射 -->
<propertyname="empName"column="empName"></property>
<propertyname="workDate"column="workDate"></property>
</class>
</hibernate-mapping>
三,hibernate.cfg.xml 主配置文件
<!DOCTYPEhibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接配置 -->
<propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="hibernate.connection.url">jdbc:mysql:///hib_demo</property>
<propertyname="hibernate.connection.username">root</property>
<propertyname="hibernate.connection.password">root</property>
<propertyname="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<propertyname="hibernate.show_sql">true</property>
<!-- 加载所有映射 -->
<mappingresource="cn/itcast/a_hello/Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
四,App.java 测试类
public class App {
@Test
public void testHello() throws Exception {
// 对象
Employee emp = new Employee();
emp.setEmpName("班长");
emp.setWorkDate(new Date());
// 获取加载配置文件的管理类对象
Configuration config = new Configuration();
config.configure(); // 默认加载src/hibenrate.cfg.xml文件
// 创建session的工厂对象
SessionFactory sf = config.buildSessionFactory();
// 创建session (代表一个会话,与数据库连接的会话)
Session session = sf.openSession();
// 开启事务
Transaction tx = session.beginTransaction();
//保存-数据库
session.save(emp);
// 提交事务
tx.commit();
// 关闭
session.close();
sf.close();
}
}
Hibernate Api
|-- Configuration 配置管理类对象
config.configure(); 加载主配置文件的方法(hibernate.cfg.xml)
默认加载src/hibernate.cfg.xml
config.configure(“cn/config/hibernate.cfg.xml”); 加载指定路径下指定名称的主配置文件
config.buildSessionFactory(); 创建session的工厂对象
|-- SessionFactory session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)
sf.openSession(); 创建一个sesison对象
sf.getCurrentSession(); 创建session或取出session对象
|--Session session对象维护了一个连接(Connection), 代表了与数据库连接的会话。
Hibernate最重要的对象: 只用使用hibernate与数据库操作,都用到这个对象
session.beginTransaction();开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!
更新:
session.save(obj); 保存一个对象
session.update(emp); 更新一个对象
session.saveOrUpdate(emp); 保存或者更新的方法:
1.没有设置主键,执行保存;
2.有设置主键,执行更新操作;
3.如果设置主键不存在报错!