简介:

  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();

HIdernate入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. [置顶] 【Git入门之一】Git是神马?

    1.Git是神马? 一个开源的分布式版本控制系统,可以有效的高速的控制管理各种从小到大的项目版本.他的作者就是大名鼎鼎的Linux系统创始人Linus. 2.分布式又是神马? 先看看集中式.简单说来, ...

  2. Python 处理server返回gzip内容

    Python 如何处理server返回gzip压缩过的内容,代码如下: from StringIO import StringIOimport gzip request = urllib2.Reque ...

  3. 【转】在Ubuntu上下载、编译和安装Android最新源代码

    原文网址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Linux Kernel和Android有一定 ...

  4. java 枚举使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...

  5. (转载)JavaScript中的Window窗口对象

    (转载)http://www.ijavascript.cn/jiaocheng/javascript-window-65.html 例子: <html> <head> < ...

  6. Interleaving String——Leetcode

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...

  7. Web---JS-返回上一页并刷新代码整理

    返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下: 一:JS 重载页面,本地刷新,返回上一页 代码如下: ...

  8. UVA 11624 Fire! (bfs)

    算法指南白书 分别求一次人和火到达各个点的最短时间 #include<cstdio> #include<cstring> #include<queue> #incl ...

  9. Lambda表达式与匿名方法

    在C#2中,由于有了方法组,匿名方法,类型的协变和抗变,使得运用delegate变得很容易,在注册事件时代码变得简单易读,但是在C# 2中,代码仍然有点臃肿,大块的匿名方法会降低代码的可读性,一般我们 ...

  10. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...