一.hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象 编程思维来操纵 数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。二.hibernate环境搭建
1.导入hibernate核心jar包
需要导入hibernate3.jar和lib/required文件下所有的jar包再加上一个hibernate-jpa-2.0-api-1.0.1.Final.jar即可。如图
2.添加hibernate核心配置文件hibernate.cfg.xml
其中com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernate root 123456 org.hibernate.dialect.MySQLDialect true update
3.添加表与实体间映射关系文件 xxx.hbm.xml
三.使用hibernate的7个步骤
1.第一步:
创建Configuration读取配置信息 Configuration cfg = new Configuration().configure();2.第二步:
创建sessionFactory SessionFactory factory= cfg.buildSessionFactory();3.第三步:打开session
Session session=factory.Z http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcGVuU2Vzc2lvbigpOwo8aDM+ICAgICAgICA0LrXay8SyvaO6v6rG9MrCzvFUcmFuc2FjdGlvbjwvaDM+CgogICAgICAgIHNlc3Npb24uZ2V0VHJhbnNhY3Rpb24oKS5iZWdpbigpOwo8aDM+ICAgICAgICA1LrXazuWyvaO6vfjQ0LPWvsO7r7LZ1/ejrLy01PbJvrLpuMS1yLLZ1/c8L2gzPgoKICAgICAgICAgVXNlciB1c2VyPW5ldyBVc2VyKCk7CgogICAgICAgICB1c2VyLnNldE5hbWUo"aaa"); user.setPassword("123456"); session.save(user);6.第六步:提交事务
session.getTransaction().commit();7.关闭资源,也就是关闭session
session.close();
第一步通过创建Configuration对象读取hibernate.cfg.xml配置文件信息,为创建对应的session做准备。第二步根据读取的配置文件信息创建sessionfactory对象。在hibernate.cfg.xml文件中有sessionfactory的配置信息,在sessinofactory中配置了数据源及对数据库操作的一些信息,而sessionfactory根据这些信息去创建相应的session对象。session对象是hibernate操作数据库的一个句柄对象,用来将数据持久化或其他的操作,与HttpSession没有本质联系。总的来说hibernate.cfg.xml配置文件信息主要是在为创建数据持久化过程中使用的对象session对象做描述(配置),只不过在hibernate中又封装了configuration、sessionfactory,configuration用来读取配置文件,sessionfactory作为session工厂对象根据configuration提供的指定配置去创建相应的session,进而通过session对象去完成数据的持久化。
四.实例代码
hibernate.cfg.xmlUser.hbm.xmlcom. mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernate root 123456 true org.hibernate.dialect.MySQLDialect update
User类:
/**
*
*/
package com.zhouxiang.model;
/**
* @ClassName: User
* @Description: TODO
* @author zx
* @date 2014年5月15日 上午10:40:43
*
*/
public class User {
private String id;
private String name;
private String password;
public User()
{}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
测试类:
/** * */ package com.zhouxiang.test; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.zhouxiang.model.User; /** * @ClassName: Test1 * @Description: TODO * @author zx *