002---第一个Hibernate示例
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示例的更多相关文章
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解
在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...
- WCF学习之旅——第一个WCF示例(一)
最近需要用到WCF,所以对WCF进行了解.在实践中学习新知识是最快的,接下来先做了一个简单的WCF服用应用示例. 本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些 ...
- WCF学习之旅——第一个WCF示例(三)
第五步:创建客户端 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端 ...
- WCF学习之旅——第一个WCF示例(二)
第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终 ...
- 攻城狮在路上(壹) Hibernate(二)--- 第一个hibernate程序
1.直接通过JDBC API持久化实体域对象: A.java.sql常用接口和类: DriverManager:驱动程序管理器,负责创建数据库连接. Connection:代表数据库连接. State ...
- Wordcount on YARN 一个MapReduce示例
Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...
- Hibernate入门(1)-第一个Hibernate程序
Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...
- 一个Hibernate小程序
基本步骤 在前一篇博文Hibernate环境搭建中为大家详细的介绍如何搭建一个学习新类库的学习环境.今天,为大家带来一个Hibernate小例子,让大家能够快速上手. 步骤如下: 1.配置hibern ...
- 这是一个hibernate 联合主键的例子
package com.bird.entity; import java.io.Serializable; import javax.persistence.Entity; import javax. ...
随机推荐
- UWP: 掌握编译型绑定 x:Bind
在 UWP 开发中,我们在进行数据绑定时,除了可以使用传统的绑定 Binding,也可以使用全新的 x:Bind,由于后者是在程序编译时进行初始化操作(不同于 Binding,它是在运行时创建.初始化 ...
- 用java写的一个简易记事本
import java.awt.*; import java.awt.event.*; import java.io.*; public class NoteDemo { private Frame ...
- 【 js 基础 】 深浅拷贝
underscore的源码中,有很多地方用到了 Array.prototype.slice() 方法,但是并没有传参,实际上只是为了返回数组的副本,例如 underscore 中 clone 的方法: ...
- WCF和ASP.NET Web API在应用上的选择
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...
- 前端开发必须说的那些事之——同源策略(same origin policy)
同源策略指的是三个相同 协议相同 域名相同 端口相同 如https://www.baidu.com/hahah.html这个网址来说 https是使用的协议,www.baidu.com是域名,端口号默 ...
- 关于css禁止文本复制属性
最近在做DHTMLX框架替换,新框架dhx的grid是不能选中内容复制的 虽然相对来说是安全些的,但是客户体验度一定会大打折扣 网页上禁止复制主要靠JavaScript来实现.<BODY onc ...
- UEditor编辑器和php简单的实现socket通信
一.UEditor编辑器 使用这个编辑器是需要先下载编辑器文件,记得下载的时候放入自己的网站中,既然是php中使用,自然我下载的就是php的UEditor编辑器了,然后是utf-8的 其实使用很简单, ...
- Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
1:学习Oracle首先需要安装Oracle,网上已经有很多很多教程了,这里不做叙述,自己百度即可,这里安装的标准版,个人根据需求安装学习或者企业开发即可.如果安装出错,自己百度Oracle的卸载即可 ...
- 凭证(Credential)
在SQL Server中,凭证(Credential)用于把Windows用户的身份验证信息(在Windows环境下,是Windows 用户名和密码)存储在SQL Server实例中,并把该身份验证信 ...
- xmlplus 组件设计系列之二 - 按钮
除了图标以外,按钮也许是最简单的组件了,现在来看看如何定义按钮组件. 使用原生按钮组件 在 xmlplus 中,HTML 元素也以组件的方式存在.所以,你可以直接通过使用 button 标签或者 in ...