Hibernate压缩文件结构

下载Hibernate压缩文档,下面为文件结构:

Hibernate3.jar:为Hibernate的核心jar包;

build.xml:重新打包配置文件

build.bat:运行在windows系统中打包;

build.sh:运行在Unix系统上打包;

doc:Hibernate API文档

eg:一个简单的实例

etc:Hibernate中需要使用的配置文件的模板

lib:Hibernate所需要使用的一些Jar包

src:Hibernate的源代码

test:测试代码(单元测试代码)

搭建Hibernate的使用环境:

1、   建立项目(我们这里建立Java Project)

例:hibernate_first

2、   引入hibernate所需要的jar包

利用User Library库引入jar包,以后项目如何需要使用这此jar包,只要引入这个库就可以了。

方法:

第一步: window→Preferences → Java → Build Path → User Libraries → “New” 按钮→ 然后输入库名→点击“OK”

第二步:加入所需要的JAR包:点击“Hibernate3”项→“Add JARs…”按钮→在弹出的对话框选择需要的JAR包(hibernate3.jar、lib目录下的所有JAR包),还有数据库的JDBC驱动(例如Mysql驱动)

为项目引入hibernate JAR

右键项目→Properties→Java Build Path→右边点击”Libraries”选项卡→“Add Library…”按钮→User Library→”next”按钮→选中我们刚刚建的”Hibernate3 JAR库”→Finish→OK

1、   创建Hibernate的配置文件(hibernate.cfg.xml)

Hibernate支持两个格式的配置文件:hibernate.properties(不常用)和hibernate.cfg.xml(建意使用)

将hibernate.cfg.xml文件复制到ClassPath的根下(src目录下)(hibernate.cfg.xml位于hibernate_home/etc目录下)

<session-factory>

<!--

具体的配置信息可参见hibernate_home/etc/hibernate.properties相关配置项

如何要移植数据时,只要将下面数据库信息修改就可以了。

-->

<!-- 配置mysql数据库连接串 -->

<property name="hibernate.connection.url">jdbc:mysql://localhost:3036/hibernate_first</property>

<!-- 配置mysql数据库jdbc驱动 -->

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<!-- 配置mysql数据库连接用户名 -->

<property name="hibernate.connection.username">root</property>

<!-- 配置mysql数据库连接用户密码 -->

<property name="hibernate.connection.password">root</property>

<!--配置数据库适配器(使用何中数据库)-->

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- 是否显示hibernate的SQL语句 -->

<property name="hibernate.show_sql">true</property>

<!-- 实体类导出至数据库时,如果存在的表处理方式:

hibernate.hbm2ddl.auto :(create-drop、create、update、validate)

-->

<property name="hibernate.hbm2ddl.auto">update</property>

<!-- 配置实体类映射文件 位于property之后

映射文件要求为完整路径,目录之前使用/隔开

-->

<mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

</session-factory>

1、   创建日志的配置文件(log4j.properties),为了便于调试最好加入log4j配置文件

将模板文件复制到ClassPath根下(src目录下)

为了不需要多于的提示信息,可以将此配置文件中一些配置项取消了。但要保留log4j.rootLogger=warn, stdout

2、   定义实体类

(Hibernate先定义实体类,再生成表)

例如:User实体类

3、   定义User类的映射文件(重要、关键)—User.hbm.xml

映射文件可位于任何位置,但一般位于实体类同一目录下。

映射文件是描述实体类和实体类的属性的。

源数据:描述实体类及实体类属性之间的关系的。

映射类标签:<classs></class>

<!--

class标签 实体类映射到数据表

* name属性:实体类的完整路径

* table属性:实体类映射到数据库中的表名,如果省略,则为实体类的类名称

-->

<class name="com.wjt276.hibernate.User" table="t_user">

<!-- 映射数据库主键 映射到数据表中的字段名默认为类属性名,但可以利用column重新指定-->

<id name="id" column="id">

<!-- generator设置主键生成策略

uuid:一万年内生成唯一的字符串

-->

<generator class="uuid"/>

</id>

<!-- property 映射普通属性  映射到数据表中的字段名默认为类属性名,但可以利用column重新指定-->

<property name="name" column="name"/>

<property name="password"/>

<property name="createTime"/><!-- Hibernate会自动根据实体类属性类型生成数据库表中字段类型 -->

<property name="expireTime"/>

</class>

1、   将User.hbm.xml文件加入到hibernate配置文件中(hibernate.cfg.xml),因为hibernate并不知道这个文件的存在。

<!-- 配置实体类映射文件 位于property之后

映射文件要求为完整路径,目录之前使用/隔开

-->

<mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

1、   使用hibernate工具类将对象模型生成关系模型(hbm to ddl)

(也就是实体类生成数据库中的表),完整代码如下:

package com.wjt276.hibernate;

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

/**

* Hibernate工具<br/>

* 将对象模型生成关系模型(将对象生成数据库中的表)

* 把hbm映射文件转换成DDL

* 生成数据表之前要求已经存在数据库

* 注:这个工具类建立好后,以后就不用建立了。以后直接Copy来用。

* @author wjt276

* @version 1.0 2009/10/16

*/

public class ExportDB {

public static void main(String[] args){

/*

* org.hibernate.cfg.Configuration类的作用:

* 读取hibernate配置文件(hibernate.cfg.xml或hiberante.properties)的.

* new Configuration()默认是读取hibernate.properties

* 所以使用new Configuration().configure();来读取hibernate.cfg.xml配置文件

*/

Configuration cfg = new Configuration().configure();

/*

* org.hibernate.tool.hbm2ddl.SchemaExport工具类:

* 需要传入Configuration参数

* 此工具类可以将类导出生成数据库表

*/

SchemaExport export = new SchemaExport(cfg);

/*

* 开始导出

* 第一个参数:script 是否打印DDL信息

* 第二个参数:export 是否导出到数据库中生成表

*/

export.create(true, true);

}

}

1、   运行刚刚建立的ExportDB类中的main()方法,进行实际的导出类。

2、   开发客户端,完整代码如下:

package com.wjt276.hibernate;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class Client {

public static void main(String[] args){

//读取hibernate.cfg.xml文件

Configuration cfg = new Configuration().configure();

/*

* 创建SessionFactory

* 一个数据库对应一个SessionFactory

* SessionFactory是线线程安全的。

*/

SessionFactory factory = cfg.buildSessionFactory();

//创建session

//此处的session并不是web中的session

//session只有在用时,才建立concation,session还管理缓存。

//session用完后,必须关闭。

//session是非线程安全,一般是一个请求一个session.

Session session = null;

try {

session = factory.openSession();

//手动开启事务(可以在hibernate.cfg.xml配置文件中配置自动开启事务)

session.beginTransaction();

User user = new User();

user.setName("张三");

user.setPassword("123");

user.setCreateTime(new Date());

user.setExpireTime(new Date());

/*

* 保存数据,此处的数据是保存对象,这就是hibernate操作对象的好处,

* 我们不用写那么多的JDBC代码,只要利用session操作对象,至于hibernat如何存在对象,这不需要我们去关心它,

* 这些都有hibernate来完成。我们只要将对象创建完后,交给hibernate就可以了。

*/

session.save(user);

//提交事务

session.getTransaction().commit();

} catch (Exception e) {

e.printStackTrace();

//回滚事务

session.getTransaction().rollback();

} finally {

if (session != null) {

//关闭session

session.close();

}

}

}

}

注:为了方便跟踪sql语句执行,可以在hibernate.hbm.xml中加入下以代码:

<property name="hibernate.show_sql">true</property>

002---第一个Hibernate示例的更多相关文章

  1. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解

    在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...

  2. WCF学习之旅——第一个WCF示例(一)

    最近需要用到WCF,所以对WCF进行了解.在实践中学习新知识是最快的,接下来先做了一个简单的WCF服用应用示例. 本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些 ...

  3. WCF学习之旅——第一个WCF示例(三)

    第五步:创建客户端 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端 ...

  4. WCF学习之旅——第一个WCF示例(二)

    第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终 ...

  5. 攻城狮在路上(壹) Hibernate(二)--- 第一个hibernate程序

    1.直接通过JDBC API持久化实体域对象: A.java.sql常用接口和类: DriverManager:驱动程序管理器,负责创建数据库连接. Connection:代表数据库连接. State ...

  6. Wordcount on YARN 一个MapReduce示例

    Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...

  7. Hibernate入门(1)-第一个Hibernate程序

    Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...

  8. 一个Hibernate小程序

    基本步骤 在前一篇博文Hibernate环境搭建中为大家详细的介绍如何搭建一个学习新类库的学习环境.今天,为大家带来一个Hibernate小例子,让大家能够快速上手. 步骤如下: 1.配置hibern ...

  9. 这是一个hibernate 联合主键的例子

    package com.bird.entity; import java.io.Serializable; import javax.persistence.Entity; import javax. ...

随机推荐

  1. Struts2基础学习(四)—类型转换器和数据校验

    一.自定义类型转换器 1.概述      Struts2提供了常规类型转换器,可以用于常用数据类型的转换,但如果目标类型是一个特殊类型,则需要自定义转换器.Struts2 类型转换器实际上都是基于OG ...

  2. 06 Theory of Generalization

    若H的断点为k,即k个数据点不能被H给shatter,那么k+1个数据点也不能被H给shatter,即k+1也是H的断点. 如果给定的样本数N是大于等于k的,易得mH(N)<2N,且随着N的增大 ...

  3. activiti 一个流程的运转步骤 以请假流程为例

    ---为了加深对activiti的理解记忆,对自己做的一个流程进行自述.加强记忆 请假实例 一.设计请假的流程图以及流程文件,完善对应数据项,比如用户信息,请假单信息 --请假单 --流程图 --流程 ...

  4. Twitter数据抓取的方法(二)

    Scraping Tweets Directly from Twitters Search Page – Part 2 Published January 11, 2015 In the previo ...

  5. 用C写一个web服务器(三) Linux下用GCC进行项目编译

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...

  6. canvas与svg区别

    canvas与svg区别 和SVG比起来有两个弱点,一个是画布里的内容是独立的,不能当成html元素:二是CANVAS是属于位图格式,而SVG是矢量图,可以平滑放大. HTML5的canvas画出来的 ...

  7. Tarjan-求强连通分量

    知识点-Tarjan 强连通分量:在一个图的子图中,任意两个点相互可达,也就是存在互通的路径,那么这个子图就是强连通分量(或者称为强连通分支).如果一个有向图的任意两个点相互可达,那么这个图就称为强连 ...

  8. 【Java SE】如何用Java实现冒泡排序

    摘要: 作为一名Java开发工程师,手头如果不会几个常见的排序算法,怎么可能经过笔试题这一关呢.据我所知,许多大型的公司的笔试题都有排序题,那我们先从最简单的排序:冒泡排序开始,以后几篇博客将继续更新 ...

  9. seajs模块标识命名和解析规则

    模块标识采用路径形式,但要注意与路径的区别.require.require.async的第一个参数是模块标识.而seajs.use第一个参数为文件路径. use是全局的,require是局部的.模块标 ...

  10. 利用GDB进行多线程调试

    一.多线程调试 多线程调试重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break file.c:100 ...