[学习笔记] 快速开发Hibernate

hibernate逆向工程 ssh框架中h是对象关系映射框架,负责数据库的连接,可以让编程人员对数据库的操作更加便捷,在JavaEE编程工具中提供了一个非常方便的方法,hibernate逆向工程,可以通过hibernate逆向工程生成Java代码,对数据库的基本操作都不用在自己动手写,直接调用逆向生成代码中的方法对数据库进行基本的增删查改操作。 hibernate连接数据库和mapping 阅读详情

樊欢 java及开源项目爱好者。
    Email :heydaymail@hotmail.com
    Blog :http://heyday.blogone.net
    2005-6-13

引言
    关于学习Hibernate的意义,咱不用多说。
  
下载并安装插件
    Hibernate3
    下载:http://hibernate.sourceforge.net
    JBossIDE1.5M1
    下载:http://sourceforge.net/projects/jboss/
    HibernateSynchronizer3
    下载:http://sourceforge.net/projects/hibernatesynch/
    Mysql及JDBC开发包
    下载:http://dev.mysql.com/downloads/

    JBossIDE1.5M1 基于Eclipse的IDE开发工具,你可以通过升级你的Eclipse插件进行升级,不过我升级了很多次都不成功,经常升级到一半就毫无动静,白白浪费了很多时间,所以推荐直接下载JBossIDE。

    HibernateSynchronizer Eclipse的Hibernate插件。可以生成Hibernate的配置文件和Java代码。不过是基于Hibernate2的。Hibernate2与Hibernate3 的Classs的包由原来的net.sf 移至 org 包内。所以HibernateSynchronizer 生成的Java代码和配置文件会有错误。我通过对HibernateSynchronizer进行反编译,并进行修改,使之适应于Hibernate3 ,目前使用还未发现问题。要使用我修改后的版本,请与我通过Email(heydaymail@hotmail.com 实在是找不到空间可放)联系。

第一个实例
    一、前期准备
        安装HibernateSynchronizer 插件,并在JBossIDE 透视图里配置好。

        启动Mysql,建表Computer:

 CREATE TABLE `computer` (
  `id` int(11) NOT NULL auto_increment,
  `cpu` varchar(50) default NULL,
  `mainboard` varchar(50) default NULL,
  `displaycard` varchar(50) default NULL,
  `harddisk` varchar(50) default NULL,
  `display` varchar(50) default NULL,
  `memory` varchar(50) default NULL,
  `soundcard` varchar(50) default NULL,
  `cdrom` varchar(50) default NULL,
  `mouse` varchar(50) default NULL,
  `keyboard` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ;

    二、新建项目
 启动JBossIDE ,新建一个DemoHibernate 项目,导入Hibernate及Mysql 开发包。如图:
[img]http://images.blogcn.com/2005/6/13/8/heyday,2005061315445.jpg[/img]
 将Hiberante开发包里的log4j.properties 放至项目根目录下。

    三、Hibernate 配置文件
        1. 通过JBossIDE Hibernate插件,生成Hibernate.cfg.xml

 
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">
   org.hibernate.dialect.MySQLDialect
  </property>
  <property name="hibernate.connection.url">
   jdbc:mysql://localhost/hibernate
  </property>
  <property name="hibernate.connection.driver_class">
   org.gjt.mm.mysql.Driver
  </property>
 </session-factory>
</hibernate-configuration>

        2. 通过HibernateSynchronizer 生成Mapping文件

 
        3. 将Mapping 文件 加入 Hiberante.cfg.xml文件
 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="my.demo.hibernate">
 <class name="Computer"
  table="computer"
 >
  <id
   name="Id"
   type="int"
   column="id"
  >
   <generator class="increment"/>
  </id>

  <property
   name="Cpu"
   column="cpu"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Mainboard"
   column="mainboard"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Displaycard"
   column="displaycard"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Harddisk"
   column="harddisk"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Display"
   column="display"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Memory"
   column="memory"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Soundcard"
   column="soundcard"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Cdrom"
   column="cdrom"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Mouse"
   column="mouse"
   type="string"
   not-null="false"
   length="50"
  />
  <property
   name="Keyboard"
   column="keyboard"
   type="string"
   not-null="false"
   length="50"
  />


 </class> 
</hibernate-mapping
>


    生成的Computer.hbm,中 Id 字段为自增,需要将generator class=”VM”参数改为increment

    将Mapping文件加入到Hibernate.cfg.xml中


    可以看到Hibernate.cfg.xml中增加一行

 
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">
   org.hibernate.dialect.MySQLDialect
  </property>
  <property name="hibernate.connection.url">
   jdbc:mysql://localhost/hibernate
  </property>
  <property name="hibernate.connection.driver_class">
   org.gjt.mm.mysql.Driver
  </property>
  <mapping resource="conf/Computer.hbm" />
 </session-factory>
</hibernate-configuration>

四、 生成Java代码
通过HibernateSynchronizer 生成 Hibernate Java代码。

生成的代码结构如图:


[B]五、 编写代码[/B]

 package my.demo.hibernate.Sample;

import org.apache.log4j.PropertyConfigurator;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import my.demo.hibernate.Computer;

public class ComputerCreate {

 /**
  * @param args
  */
 public static void main(String[] args) {
    
  PropertyConfigurator.configure("log4j.properties");
  Configuration cfg = new Configuration();
  cfg.configure();
  SessionFactory sf = cfg.buildSessionFactory();
  Session session = sf.openSession();
  Computer computer = new Computer();
  
  computer.setCpu("on(E) 2.4" );
  computer.setDisplay("LCD" );
  computer.setDisplaycard("intel" );
  computer.setHarddisk("60G" );
  computer.setMainboard("inter" );
  computer.setMemory("512M" );
  computer.setMemory("Agiller" );
  computer.setSoundcard("inter" );
  computer.setKeyboard("inter" );
  computer.setCdrom("cdrom" );
  
  session.save(computer);
  session.flush();
  
  try{
   session.connection().commit();
   session.close();
   System.out.println("success!!!!");
  }catch(Exception e){
   e.printStackTrace();
  }
 }
}

总结
    Hibernate 实现O/R Mapping,但配置文件编写非常麻烦,通过JBossIDE 及HibernateSynchronizer可以快速的帮助我们构建代码,大大提高我们的工作效益。

关于作者
    樊欢 java爱好者,您可以通过heydaymail@hotmail.com与我联系。
    Email :heydaymail@hotmail.com
    Blog :http://heyday.blogone.net

Hibernate第一篇【介绍Hibernate,简述ORM,快速入门】 前言前面已经学过了Struts2框架了,紧接着就是学习Hibernate框架了…本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门什么是Hibernate框架?Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象!为什么要使用Hibernate 阅读详情

相关推荐

支付系统保证可靠性的秘诀 ----- 订单的补偿和补单

文章目录WHAT? 前言WHY? 为什么要用多级缓存?HOW 怎么做?方案 版本1:数据库存储专线配置通过优先级进行动态上下线方案 版本1 劣势:方案 版本2 :本地缓存替代数据库方案 版本2 劣势:方案 版本3:分布式缓存做自动补偿方案 版本3 总结:Where 分布式多级缓存还能用在哪些地方?总结 WHAT? 前言 刚入职场的时候觉得支付宝等第三方支付系统好强大,要保证这么多的交易不能错,也不能重复还要保证正确的扣钱,直到后面接触订单系统以及第三方支付公司的核心交易系统后才真正窥探到了支付系统的核心

boboaisisi的专栏 3506

[学习笔记]快速开发Hibernate

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 452

Vivado报错-4 [Routed 35-3424] SLL Assignment failed ILP VU19P

Vivado报错[Routed 35-3424] SLL Assignment failed ILP VU19P

weixin_39896700的博客 1379

学习笔记]快速开发Hibernate

樊欢 java及开源项目爱好者。    Email :heydaymail@hotmail.com    Blog :http://heyay.blogone.net    2005-6-13引言    关于学习Hibernate的意义,咱不用多说。        下载并安装插件    Hibernate3     下载:http://hibernate.sourceforge.net    JB...

weixin_33939843的博客 93

Hibernate学习笔记五:反向工程快速开发

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6768513.html 一:反向工程 Myeclipse提供由 数据库表 生成 javapojo 和 hibernate映射文件 的功能,这就是反向工程。 二:由反向工程得到POJO类与映射文件 1:点击开发界面右上角的 》,选择 Database Explorer界...

a631278993的博客 140

Hibernate入门第一讲——Hibernate框架的快速入门

Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以

李阿昀的博客 12万+

Hibernate快速入门、快速使用(Hibernate级联操作)

Hibernate简介 如何使用 具体操作 创建maven工程 添加 hibernate.cfg.xml 文件 创建实体类 创建实体关系映射文件 将实体类关系映射文件注册到 Hibernate.cfg.xml 配置文件中 使用 Hibernate API 完成数据操作 pom.xml 文件中需要配置 resource 查看执行结果 Hibernate 级联操作 一对多关系 多对多关系 Hibernate 实现一对多 将实体类关系映射文件注册到 hibernate.cfg.xml 配置文件中 编写测试类

weixin_57558097的博客 4186

使用xdoclet快速开发hibernate

在我用SSH+velocity开发过程中,hibernate和velocity是我觉得最好的工具.最后看了一些关于ant和xdoclet和上网查了一些资料,参考了一些资料后整理了一下.以后每次要创建一张新的表,只要创建一个新的pojo类,然后用ant运行,就可以得到hbm.xml文件的sql的dll语句,比我之前从database->hbm.xml->pojo方便多了,也快了很多.如果平时要用半小

ronaldchan2005的专栏 909

hibernate快速搭建开发环境

1.ecplise集成hibernate插件快速方便hibernate开发 Hibernate Tools是用于Hibernate的工具集,实现为Eclipse插件的集成套件,以及用于集成到构建周期中的统一Ant任务。Hibernate Tools是JBoss Tools的核心组件,因此也是JBoss Developer Studio的一部分。 http://hibernate.org/...

吻得太逼真的博客 332

使用Hibernate在CQRS读取模型中进行快速开发

在这篇文章中,我将分享一些在CQRS读取模型中使用Hibernate工具进行快速开发的技巧。 为什么要休眠? 休眠非常流行。 从外观上看,它也很容易,而从内部看,它却相当复杂。 它可以很容易地开始使用,而无需进行深入了解,滥用和发现问题,如果为时已晚。 由于所有这些原因,这几天真是臭名昭著。 但是,它仍然是一项坚实而成熟的技术。 经过实战测试,功能强大,文档完善,并且可以解决许多常见...

最佳 Java 编程 123

Hibernate之注解开发快速入门

一,比较Hibernate的配置文件开发,注解开发需要多导入一个jpa包: 二,在src目录下新建一个META-INF文件夹,在该文件夹下建一个persistence.xml文件,配置内容如下: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence xmlns="http://xmlns.jcp.org/xml/ns/per...

小白的逆袭的博客 1182

MyEclipse快速开发Hibernate的步骤

MyEclipse快速开发Hibernate的步骤用 MyEclipse, 就有必要把 MyEclipse 快速开发的功能熟悉一下. 当我们熟悉了基本的开发过程之后, 就需要考虑用顺手的 IDE 来让我们的开发速度有个飞跃了.这次讨论的主题包括: Hibernate 快速开发, Spring 快速开发, Struts 登录应用开发, UML 建模, 可视化Swing界面

lubiaopan的专栏 1535

Hibernate快速入门

Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibern...

龚道松 174

【web开发学习笔记Hibernate学习总结

hibernate学习笔记 本部分的学习比较容易,代码比较全,也容易理解,没有什么较难理解的。 本人在学习过程中没有在做笔记,只是参考了网上找的学习笔记,按照那个笔记学习和复习挺快的。 源码中有一些jar包缺失,我在自学的时候也整理了相关的jar包和软件,已经上传,祝大家学习快乐。 相关资源链接:

人家 1374

Hibernate学习笔记总结

**框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,向客户提供创新式的个性化的客户交互和服务的过程 * 其最终目标是将面向客户的各项信息和活动集成起来,组建一个以客户为中心的企业,实现对面向客户的活动的全面管理 2....

夏桑菊泡面 462

如何实现一个快速开发框架之crud

    我在《一个优秀框架的评判标准和方向》说了,一个优秀的企业级开发框架——以用户需求为向导的框架——应该至少实现crud,workflow,report三个范畴的常见需求的快速开发。       Crud范畴的快速开发具体怎么做呢?这里提供一种我的实现方式,它采用了hibernate这个orm框架。       Crud;说白了就是一个实体对象的增、删、改、查。是我们最常见的功能。做C

luopan的专栏 1455

[PL/SQL] 用For Loop 替代Cursor

我们在Oracle存储过程中需要遍历一张表,应该怎样做。我想大多少的人第一个念头就是Cursor。  比如:create or replace procedure StudyCursor(resulst out integer) isv_tablename varchar(30);v_tabletype varchar(11);cursor mycursor is select * from ca

不同樊响 5007

upqcmodelmpc_1.rar_UPQC Matlab model_UPQC Model_UPQC matlab_pred

upqc with model predictive control

上一篇: [程序人生] 临兵斗者皆阵列在前
下一篇: [开发技巧] 对jar包进行再次修改
heyday
博客等级 码龄24年 0粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值