hibernate是一个优秀的持久化框架负责简化将对象保存到数据库中,或从数据库中读取数据并封装到对象的工作。hibernate通过简单配置和编码即可替代jdbc繁琐的程序代码。

下面是集成hibernate的具体步骤

下载hibernate的.jar包并在项目中进行引用

在classpath下创建并编写hibernate.cfg.xml配置文件

 

<?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> <!-- 数据连接配置 -->
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property><!--驱动类的全名称-->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!--数据库连接的url-->
<property name="connection.username">WZ</property><!--用户名-->
<property name="connection.password">*****</property><!--密码--> <!-- 配置SQL方言 -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- 设置Session上下文-->
<property name="current_session_context_class">thread</property>
<!-- 格式化sql -->
<property name="format_sql"> true</property> <!-- 在控制台显示hibernate自动生成的sql语句 -->
<property name="show_sql">true</property>
<!--格式换在控制台显示的sql语句-->
<property name="hbm2ddl.auto">
update
</property>
<!--数据实体类的配置文件的引用-->
<mapping resource="xxx.hbm.xml" /> </session-factory> </hibernate-configuration>

创建并编写实体类的配置文件

<?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="student_entity"> <class name="类名" table="表名">
主键类配置
<id name="sid" column="stuno">
<generator class="sequence">
<param name="sequence">
SQL_ID
</param> </generator> </id>
属性配置
<property name="sage"/>
<property name="name" column="stuname"/> </class> </hibernate-mapping>

其中:<generator class=””/>配置主键的生成策略其取值如下:

increment:对类型为long、short、int类型的主键,已自动增长的方式生成主键的值,增量为1

sequence:对于支持序列的数据库可使用序列来给主键赋值其通过param子元素来指定序列名

identity:对支持标识列的数据库可使用该策略。但需要在数据控的该列设置为标识列

native:由hibernate自动判断使用何种策略

assigned:主键有应用程序生成,hibernate无需参与

在实体类的配置文件编写完成之后还要在hibernate.cfg.xml文件中添加该配置文件的引用如图:

测试

以上步骤全部完成后就可以在程序中使用hibernate提供的api来进行数据操作,

Configuration cfgt=new Configuration().configure();//创建配置对象将hibernate.cfg.xml文件中的信息封装到cfgt对象中
SessionFactory factory = cfgt.buildSessionFactory();//创建命令工厂
Session session = factory.openSession();//打开命令对象
Transaction tsc = session.beginTransaction();//开始事务 session.save(stu);将stu中的信息保存到数据库中(stu为已创建的实体类对象) tsc.commit();//提交事务
session.close();//关闭命令对象

hibernate集成的更多相关文章

  1. Spring与Hibernate集成中的Session问题

    主要讨论Spring与Hibernate集成中的session问题 1.通过getSession()方法获得session进行操作 public class Test extends Hibernat ...

  2. hibernate集成ehcahe进行缓存管理

    ehcace是现在非常流行的缓存框架,有轻量.灵活.可扩展.支持集群/分布式等优点. 在项目中,使用ehcace可以对数据进行缓存(一般使用.基于注解.基于aop),使用filter可以对页面进行缓存 ...

  3. Spring和Hibernate集成配置

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  4. Spring和Hibernate集成的HibernateTemplate的一些常用方法总结

    1:get/load存取单条数据 public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get ...

  5. spring和hibernate集成事物管理配置方法

    spring+hibernate,采用声明式事务 1.声明式事务配置 * 配置SessionFactory * 配置事务管理器 * 事务的传播特性 * 那些类那些方法使用事务 2.编写业务逻辑方法 * ...

  6. Hibernate 集成 Ehcache 开启二级缓存

    一.将 Ehcache.xml 放到 classpath 下 <?xml version="1.0" encoding="UTF-8"?> < ...

  7. springMvc和Hibernate集成实现用户添加

    源码:http://pan.baidu.com/s/1i4xVLE9(百度云) 步骤:一.创建数据库(mysql) 二.导入相应jar包(注意不同数据库jdbc.jar包)配置web.xml.spri ...

  8. Spring 与 Hibernate 集成 Transactional设置为只读

    @Transactional标签用于标记ServiceImpl使用事务,并且能够打开一个sessionFactory的session,并且打开事务. 如果在这个标签为@Transactional(pr ...

  9. Spring,Hibernate 集成解决多hbm.xml文件繁多的方案

    开发一个大一点的项目有很多的hbm.xml文件,有时候上百个也不稀奇,如果用 <property name="mappingLocations"> <list&g ...

随机推荐

  1. windows 2012 试用180天

    windows server 2012 官方下载,可以使用180天, 快到期的时候执行以下命令 slmgr.vbs -rearm

  2. Core Java - 流(Stream) - 字节流和字符流(一)

    0. 概述: Java中基于流的I/O构建在4个抽象类之上, 其中2个是字节流,另外2个是字符流. 字节流: InputStream / OutputStream 当操作字节或其它二进制对象时,应当使 ...

  3. ECshop 怎样修改商品详细页的“浏览次数”

    怎样修改商品详细页的“浏览次数” 最好可以修改为成倍增加的,比如客户浏览了一次,显示的是20次. 修改 goods.php  文件的下面这行代码即可 $db->query('UPDATE ' . ...

  4. ServiceManager 小结

    1 ServiceManger 根据name优先从Map中获取IBinder,例如AMS.WMS.PMS:如果Map中没有对应的IBinder,我们获取Serviceanager的代理ServiceM ...

  5. Mac下MySQL卸载方法 转载

    mac下mysql的DMG格式安装内有安装文件,却没有卸载文件……很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stackoverflow这里发现了一个 ...

  6. ikvm.net简介

    ikvm.net是什么 http://www.ikvm.net/ ikvm.net是能够运行在mono和.net framework的java虚拟机.它包括了 在.net中实现的一个java虚拟机 j ...

  7. C#中控件数组的讨论

    VB用得习惯后,到C#中来觉得很奇怪,如此好的控件数组怎么不见了.“众所周知,控件数组最主要的两个优点:可以循环附值:可以响应同一个事件.从而大大简化了代码.引自http://wenku.baidu. ...

  8. Window中调试HBase问题小结

    1.好久没用log4j了,转到logback好多年了,hbase程序运行时,报缺少log4j配置,那么,就转去logback吧(以下的XXX表示版本号). 原先lib包里面有log4j-XXX.jar ...

  9. [转载]JavaScript 中小数和大整数的精度丢失

    标题: JavaScript 中小数和大整数的精度丢失作者: Demon链接: http://demon.tw/copy-paste/javascript-precision.html版权: 本博客的 ...

  10. [整理]C#反射(Reflection)详解

    本人理解: 装配件:Assembly(程序集) 晚绑定:后期绑定 MSDN:反射(C# 编程指南) -----------------原文如下-------- 1. 什么是反射2. 命名空间与装配件的 ...