- 浏览: 41012 次
- 性别:
- 来自: 北京
最新评论
阅读对象:
有一些hibernate使用经验的开发人员;
介绍:
在开发程序的时候,后台DAO基本的操作方法编写起来是繁琐冗余的工作。这里介绍一个Hibernate代码生成工具"HibernateSynchronizer"它是一个eclipse插件,主要功能就是帮助我们生成hbm、entity、dao代码。使用代码生成工具的好处是:提高开发效率、代码规范性更强、免除手工编写出现的手误BUG。
环境:
HibernateSynchronizer-3.1.9(下载见附件)
eclipse Indigo Service Release 2
maven3
插件安装:
将附件中的HibernateSynchronizer-3.1.9.zip下载解压(下载见附件);然后将plugins下的com.hudson.hibernatesynchronizer_3.1.9目录copy到${eclipse_home}\dropins目录下;重启eclipse成功后,点击window->prefrences输入hibernate,看到该插件表示安装成功。
使用方法:
1、准备操作
确保已经创建了数据库和表。
2、创建hibernate配置文件
在指定的目录上右键:new->hibernate->hibernate Configuration file,弹出的对话框将让你填写你的jdbc驱动、URL、username、password等属性。
3、生成hibernate映射文件
在指定的目录上右键:new->hibernate->hibernate mapping file,弹出的对话框将让你填写你的jdbc驱动、URL、username、password等属性。输入完成后在tables右边点击refresh按钮(你也可以通过表名称过了如USER_%,表示以USER_开头的所有表),勾上相应表然后点击finish就会在指定目录创建hbm文件,同时还会询问你java代码存放目录指定一个即可。
4、生成DAO代码
在你创建的hbm文件中找到<meta attribute="sync-DAO">true</meta>默认是false改成true保存,就会生成DAO代码。如下图:
测试代码:
结果:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
size===========>0
sesion已经关闭
错误调试:
1、默认生成的hbm文件把表主键也生成为property,如果不修改就会报错:
Exception in thread "main" org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:101)
at org.hibernate.cfg.Configuration.add(Configuration.java:513)
at org.hibernate.cfg.Configuration.add(Configuration.java:509)
at org.hibernate.cfg.Configuration.add(Configuration.java:716)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:801)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2344)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2310)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2290)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2243)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2158)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2137)
at org.qhy.test.Test.main(Test.java:16)
Caused by: org.xml.sax.SAXParseException: The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2939)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:75)
... 11 more
这个错误的修改办法是将表主键的property标签改为id。
有一些hibernate使用经验的开发人员;
介绍:
在开发程序的时候,后台DAO基本的操作方法编写起来是繁琐冗余的工作。这里介绍一个Hibernate代码生成工具"HibernateSynchronizer"它是一个eclipse插件,主要功能就是帮助我们生成hbm、entity、dao代码。使用代码生成工具的好处是:提高开发效率、代码规范性更强、免除手工编写出现的手误BUG。
环境:
HibernateSynchronizer-3.1.9(下载见附件)
eclipse Indigo Service Release 2
maven3
插件安装:
将附件中的HibernateSynchronizer-3.1.9.zip下载解压(下载见附件);然后将plugins下的com.hudson.hibernatesynchronizer_3.1.9目录copy到${eclipse_home}\dropins目录下;重启eclipse成功后,点击window->prefrences输入hibernate,看到该插件表示安装成功。
使用方法:
1、准备操作
确保已经创建了数据库和表。
2、创建hibernate配置文件
在指定的目录上右键:new->hibernate->hibernate Configuration file,弹出的对话框将让你填写你的jdbc驱动、URL、username、password等属性。
3、生成hibernate映射文件
在指定的目录上右键:new->hibernate->hibernate mapping file,弹出的对话框将让你填写你的jdbc驱动、URL、username、password等属性。输入完成后在tables右边点击refresh按钮(你也可以通过表名称过了如USER_%,表示以USER_开头的所有表),勾上相应表然后点击finish就会在指定目录创建hbm文件,同时还会询问你java代码存放目录指定一个即可。
4、生成DAO代码
在你创建的hbm文件中找到<meta attribute="sync-DAO">true</meta>默认是false改成true保存,就会生成DAO代码。如下图:
测试代码:
Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); //自动生成的DAO类 DamApplicationInfoDAO dao = new DamApplicationInfoDAO(session); List<DamApplicationInfo> list = dao.findAll(); System.out.println("size===========>"+list.size()); if(session.isOpen()){ System.out.println("关闭sesion"); session.close(); }else{ System.out.println("sesion已经关闭"); } sf.close();
结果:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
size===========>0
sesion已经关闭
错误调试:
1、默认生成的hbm文件把表主键也生成为property,如果不修改就会报错:
引用
Exception in thread "main" org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:101)
at org.hibernate.cfg.Configuration.add(Configuration.java:513)
at org.hibernate.cfg.Configuration.add(Configuration.java:509)
at org.hibernate.cfg.Configuration.add(Configuration.java:716)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:801)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2344)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2310)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2290)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2243)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2158)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2137)
at org.qhy.test.Test.main(Test.java:16)
Caused by: org.xml.sax.SAXParseException: The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2939)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:75)
... 11 more
这个错误的修改办法是将表主键的property标签改为id。
发表评论
-
Java实现SPI基础工具类
2016-09-09 17:16 1302概述: 前端时间看了一下dubbo源码被它使用的基于SPI(s ... -
javassi实现t动态代理模式
2016-09-08 15:08 525最近研究了一下javassist框架,目前我对它的理解是它是一 ... -
VMware重新设置网卡
2016-04-24 10:41 920环境: 系统:windows7 VMware版本:8.8 虚拟 ... -
JSP COOKIE使用
2015-12-05 16:08 510原来一直在想要实现可 ... -
Jedis事务用法
2015-11-25 20:06 1745今天同事问了一个redis的问题,主要就是出现错误之后就把所有 ... -
zookeeper笔记
2015-11-24 08:17 342这个笔记是2013年初写的,当时学习solr发现solr使用了 ... -
jdk1.7安装之后切换不回去
2015-11-02 20:03 635错误现象: 在win7上安装过jdk1.7之后,然后把环境变量 ... -
hadoopMapReduce小例子
2015-03-28 21:08 489今天做了一个简单的mapreduce小程序,目的是熟悉一下怎么 ... -
VMware虚拟机搭建Hadoop集群
2014-12-05 22:07 976最近搭建了hadoop2.5的集群,在这里分享一下希望能帮助到 ... -
eclipse文件同步插件
2014-04-29 17:41 651clipse同步插件用于指定两个目录(源目录和目标目录)做文件 ... -
修改WAS(WebSpehre)默认编码和jvm内存申请
2014-04-28 17:09 1143登陆WAS管理控制台,打开:服务器->应用程序服务器-& ... -
Apache HttpClient 代理、登陆访问百度开放平台
2014-04-23 17:50 834最近做了下使用httpclient登陆百度开放平台获取G ... -
windows下编写mapreduce程序
2014-04-20 09:51 786配置linux的hadoop环境比较繁琐,为了方便的编写 ... -
RMI随机生成端口解决方法(结合spring)
2014-04-20 08:20 2993RMI有一个网络端口和一个数据端口,网络端口我们在程序里 ... -
WAS(WebSphere)修改端口
2014-04-20 07:58 41071、修改管理页面端口(默认:9060) a>进入控制台页 ...
相关推荐
在本例中,我们关注的是一个特定的Eclipse插件,即"hibernate生成工具"。这个插件专门用于简化基于Hibernate框架的Java应用的开发过程。 Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用Java对象来...
标题中的“hibernate eclipse插件生成DAO样例”指的是使用Eclipse集成开发环境中的Hibernate插件自动生成数据访问对象(DAO)的示例。在Java应用程序开发中,尤其是使用Hibernate作为持久层框架时,DAO层是至关重要...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...
Hibernate Code Generation 是 Hibernate_Tools_for_Eclipse 插件的一部分,用于生成实体类、DAO 接口和实现类等。下面将介绍如何使用 Hibernate Code Generation 产生实体类。 1. 创建一个新的 Hibernate 工程,...
1. **代码生成**:该插件能够自动生成Hibernate配置文件(如`hibernate.cfg.xml`)和实体类,大大减少了手动编写这些文件的工作量。 2. **对象关系映射(ORM)支持**:它可以解析数据库模式并生成对应的Java类,...
在本篇文章中,我们将详细介绍如何使用Eclipse中的Hibernate插件反向生成数据库实体类。首先,我们需要安装Hibernate Tools,下载地址为http://www.jboss.org/tools/download/archive/3_1_GA.html,我们只需要下载...
Eclipse Hibernate Synchronizer插件是一款强大的开发工具,它为Eclipse IDE提供了集成的Hibernate支持,使得数据库操作和对象关系映射(ORM)更加便捷。这个插件的主要目标是简化数据库与Java实体类之间的同步过程...
通过安装这个插件,开发者可以在Eclipse环境中更直观地管理Hibernate实体、配置数据源,进行HQL查询测试,以及进行持久化操作的调试,从而简化开发流程,提高代码质量。同时,这也反映了Eclipse平台的开放性和扩展性...
因此,"eclipse插件,根据数据库表自动生成DTO(pojo)插件"应运而生,它极大地提高了开发效率。 该插件的核心功能是根据数据库中的表结构自动生成对应的DTO和POJO类。这样,开发者无需手动编写这些类,只需专注于...
Hibernate Tools 是专门为Eclipse设计的一组插件,它们扩展了Eclipse的功能,为Hibernate提供图形化界面,支持实体类的生成、配置文件的编辑、SQL查询的执行等。 在Eclipse Luna中安装Hibernate Tools时,有时会...
为了能够利用Eclipse来生成Hibernate相关的实体类,我们需要先安装Hibernate Tools插件: 1. **确定Eclipse版本**: - 打开 **Help** > **About Eclipse** 查看当前Eclipse的版本号。 2. **下载对应版本的...
### Eclipse 配置 Hibernate3 插件,生成 Mapping 和 Java #### 一、概述 本文主要介绍如何在 Eclipse IDE 中配置 Hibernate3 插件,并利用该插件自动生成数据库映射文件(Mapping)及对应的 Java 实体类。通过这...
在逆向工程向导中,你需要指定`hibernate.cfg.xml`配置文件,选择数据库连接,并指定生成的源代码位置。 4. **选择表进行逆向**:在向导的下一步,你可以选择要从数据库中逆向的表,可以全选或只选择部分。此外,还...
【标题】"Hibernate Tool非Eclipse插件方式运行"涉及的是在不依赖Eclipse环境的情况下,如何使用Hibernate Tool工具进行数据库操作。Hibernate Tool是Hibernate框架的一部分,它提供了一系列命令行工具,可以用来...
在Eclipse中安装Hibernate插件可以让开发过程更加便捷,提供了代码提示、实体管理、数据库连接配置以及SQL查询编辑器等功能。 在安装Hibernate插件时,需要注意以下几点: 1. **版本兼容性**:确保所下载的...
5. **生成代码**:点击“Finish”后,插件会自动生成对应的Java实体类和.hbm.xml映射文件,这些文件可以直接被Hibernate框架使用。 ### 三、使用示例 假设有一个名为`users`的数据库表,包含`id`、`username`和`...
为了简化开发过程,Hibernate提供了一款名为Hibernate Tools的插件,该插件可以集成到Eclipse、IntelliJ IDEA等IDE中,帮助我们自动生成Entity Bean,也就是Java对象,这些对象与数据库表进行映射。本篇将详细讲解...
在 Eclipse 中使用 Hibernate 的反向生成功能之前,首先需要安装 Hibernate Tools 插件。下面详细介绍安装步骤: 1. **打开 Eclipse 并创建新项目**: - 启动 Eclipse IDE。 - 新建一个 Web 或 Java 项目作为后续...
本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加映射资源等步骤。 下载和安装 Hibernate 首先,您需要下载 Hibernate 并将其添加到项目中。...