HIbernate入门
简介:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
第一步:环境搭建
1.下载jar包
Hibernate的官方网站是http://hibernate.org,Hibernate的jar包都可以从官方网站下载得到。
2.部署jar包
将下载好的jar包部署到自己的项目中。
3.创建Hibernate配置文件hibernate.cfg.xml。
在项目的src目录下添加Hibernate配置文件。
配置文件示例::
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> < !--数据库连接设置-->
< !--数据库JDBC驱动设置-->
<property name="connection.driver_class" >org.hsqldb.jdbcDriver</property>
< !--数据库url-->
<property name="connection.url" >jdbc:hsqldb:hsql://localhost</property>
< !--数据库用户名-->
<property name="connection.username" >sa</property>
< !--数据库用户密码-->
<property name="connection.password" ></property> < !--JDBC连接池(使用内置的)--> <property name="connection.pool_size" >1</property> < !--SQL方言--> <property name="dialect" >org.hibernate.dialect.HSQLDialect</property> < !--使Hibernate自动会话上下文管理--> <property name="current_session_context_class" >thread</property> <!--关闭二级缓存--> <property name="cache.provider_class" >org.hibernate.cache.NoCacheProvider</property> <!-- 是否将运行期间生成的sql输出到日志以供调试--> <property name="show_sql" >true</property> < !--在启动时,删除和重新创建数据表结构--> <property name="hbm2ddl.auto" >update</property>
</hibernate-configuration >
4.创建持久化类和映射文件
持久化类是指其实例状态需要被Hibernate持久化到数据库中的类,在应用程序设计中,持久化类通常对于需求中的业务实体类。
映射文件一般命名:类名.hbm.xml
映射文件配置示例:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.hibernate.tutorial.domain"> <class name="Event" table="EVENTS"> <id name="id" column="EVENT_ID"> <generator class="native"/> </id> <property name="date" type="timestamp" column="EVENT_DATE"/> <property name="title"/> </class> </hibernate-mapping >
Event为持久化类的类
table为持久化类对应的数据库表名
id:表示持久化类的id和表的主键的映射。
其中 name为持久化类的属性名,column为数据库表中对应的列名
property 节点定义持久化类中属性和数据库中字段的对应关系
5.在hibernate.cfg.xml文件中进行映射文件配置
示例
<mapping resource="cn/lhl/entity/User.hbm.xml"/>
resource 为映射文件的全路径
第二部,使用Hibernate完成持久化操作 //读取并解析配置文件
//读取并解析配置文件 Configuration configuration=new Configuration().configure(); //创建session工厂对象 SessionFactory sf=configuration.buildSessionFactory(); //打开sessionn Session session= sf.openSession(); //开始事务(怎删改操作必须,查询可选) Transaction ts= session.beginTransaction(); //数据库操作 //修改 // User user= session.get(User.class,3); // user.setName("wwwww"); // session.update(user); //添加 // User user =new User(); // user.setName("1"); // user.setPwd("a"); // session.save(user); //删除 // User user=new User(); // user.setId(2); // session.delete(user); //查询 // User user= session.get(User.class,3); // System.out.println(user.getName()); //提交事务 ts.commit(); //关闭session session.close();