- 浏览: 39478 次
- 性别:
- 来自: 北京
最新评论
阅读对象:
有一些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 1265概述: 前端时间看了一下dubbo源码被它使用的基于SPI(s ... -
javassi实现t动态代理模式
2016-09-08 15:08 429最近研究了一下javassist框架,目前我对它的理解是它是一 ... -
VMware重新设置网卡
2016-04-24 10:41 881环境: 系统:windows7 VMware版本:8.8 虚拟 ... -
JSP COOKIE使用
2015-12-05 16:08 474原来一直在想要实现可 ... -
Jedis事务用法
2015-11-25 20:06 1715今天同事问了一个redis的问题,主要就是出现错误之后就把所有 ... -
zookeeper笔记
2015-11-24 08:17 274这个笔记是2013年初写的,当时学习solr发现solr使用了 ... -
jdk1.7安装之后切换不回去
2015-11-02 20:03 593错误现象: 在win7上安装过jdk1.7之后,然后把环境变量 ... -
hadoopMapReduce小例子
2015-03-28 21:08 453今天做了一个简单的mapreduce小程序,目的是熟悉一下怎么 ... -
VMware虚拟机搭建Hadoop集群
2014-12-05 22:07 943最近搭建了hadoop2.5的集群,在这里分享一下希望能帮助到 ... -
eclipse文件同步插件
2014-04-29 17:41 604clipse同步插件用于指定两个目录(源目录和目标目录)做文件 ... -
修改WAS(WebSpehre)默认编码和jvm内存申请
2014-04-28 17:09 1071登陆WAS管理控制台,打开:服务器->应用程序服务器-& ... -
Apache HttpClient 代理、登陆访问百度开放平台
2014-04-23 17:50 805最近做了下使用httpclient登陆百度开放平台获取G ... -
windows下编写mapreduce程序
2014-04-20 09:51 743配置linux的hadoop环境比较繁琐,为了方便的编写 ... -
RMI随机生成端口解决方法(结合spring)
2014-04-20 08:20 2905RMI有一个网络端口和一个数据端口,网络端口我们在程序里 ... -
WAS(WebSphere)修改端口
2014-04-20 07:58 39811、修改管理页面端口(默认:9060) a>进入控制台页 ...
相关推荐
hibernate eclipse插件生成dao样例
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...
Eclipse使用hibernate插件反向生成数据库实体类,亲身操作,绝对真实有效
还不错了! Eclipse 配置Hibernate3 插件,生成mapping 和java
对应于eclipse4.4版本的hibernate插件,把两个压缩包解压在一起后生成两个文件夹:features和plugins,把里面的文件分别拷贝到eclipse4.4版本的相应目录下,即可
Hibernate 在eclipse中的插件安装步骤以及反向生成的步骤
hiberclipse(一个Eclipse插件,可以用来从一个数据库连接中生成Hibernate映射文件并提供一个与Hibernate相结合的回程工具类似于class2hbm,hbm2java和ddl2hbm. 它同时也提供一个漂亮的实体关系图形视图), spket...
hibernate 自动化生成工具Eclipse插件
下载并安装hibernate tools插件,下载地址:...安装完Hibernate tools插件后,在eclipse安装目录下搜索并替换hibernate-tools-5.2.0.Beta1.jar文件,即可生成带中文注释的类和hbm文件
hiberclipse(一个Eclipse插件,可以用来从一个数据库连接中生成Hibernate映射文件并提供一个与Hibernate相结合的回程工具类似于class2hbm,hbm2java和ddl2hbm. 它同时也提供一个漂亮的实体关系图形视图), spket...
生成简单的dao层和seriver,用于三大框架 Struts2+spring+hibernate+dwr
利用XDoclet从Java持久化类生成hibernate mapping,hibernate.cfg.xml和mysql数据库脚本。
Hibernate Tools插件:Eclipse插件的插件,可自动生成POJO类
通过hibernate插件 直接将实体类 映射生成对应的数据库表
运行环境:Windows XP、JDK 6.0、SQL Server 2000、Oracle 9i、Eclipse...你可以在此基础上进一步修改,然后写成自己的代码生成小工具,或者参见Eclipse插件书写规范,把它写成一个Eclipse的插件来玩,方便小组的开发。
最近刚刚学的eclipse插件开发,小试牛刀。请多提出宝贵意见、建议,不断改进。 没有资源分的 留邮箱地址。 目前支持oracle、mysql数据库
用来编写xml文件,很好用的,在eclipse中,用Hibernate时用到。很好,分享一下
Hibernate一对一数据关联 Hibernate下的多对多关系 Hibernate关系映射 Hibernate继承关系映射 Hibernate映射类型-主键生成器-核心API Hibernate3 插件Eclipse配置
在eclipse上通过hibernate工具,将数据库表生成Java类和xml配置文件 总共有2个版本,根据自己的需求使用版本3或者5: 1. hibernate-tools-3.4.0.CR2.jar是修改完成的jar包,直接替换原来的jar包, 重启eclipse即可...
slave4j 1.0 eclipse 插件和安装开发资料,采用了Spring mvc ,hibernate,jpa规范自动生成java代码,dao、service、action层