首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 搞不出来我就没法回家过年了,Hibernate3动态创建表,高手请留步!! [无满意答案结贴,结贴人:likai22]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 09:56:00 楼主
    需求就是使用Hibernate动态创建一张表,此表带有映射类,什么方法都接受,只要能实现,大家帮帮我!!

    我是这么写的,但不成功:
                      Configuration cfg = new Configuration().addClass(TAB.class);
    cfg.addFile("TAB.hbm.xml");
    SessionFactory session = cfg.buildSessionFactory();
    new SchemaExport(cfg).create(true,true);
    Session s = session.openSession();
    Query q = s.createQuery("from tab");
    for(Iterator iter = q.iterate();iter.hasNext();){
    TAB t = (TAB)iter.next();
    System.out.println(t.getNAME());
    }

    其中TAB.java是自己写的映射类,里面有name和pass两个属性,一运行报
    org.hibernate.MappingException: Could not read mapping document from file: TAB.hbm.xml
    at org.hibernate.cfg.Configuration.addFile(Configuration.java:252)
    at MServlet.doGet(MServlet.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.dom4j.DocumentException: TAB.hbm.xml (系统找不到指定的文件。) Nested exception: TAB.hbm.xml (系统找不到指定的文件。)
    at org.dom4j.io.SAXReader.read(SAXReader.java:266)
    at org.hibernate.cfg.Configuration.addFile(Configuration.java:243)
    ... 15 more


    我觉得这种方法不是很好,也没有达到预期的动态生成的目的,希望高手给予指教!!!感激不尽,只要路过都有分!
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • favorite7w
    • 等级:
    发表于:2008-01-30 10:01:431楼 得分:0
    你导入的映射文件的路径不对
    如果是在Jar包的根目录应该是:/TAB.hbm.xml
    如果是放在某个Package里,例如edu.abb.ccc,应该是:/edu/abb/ccc/TAB.hbm.xml
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 10:25:452楼 得分:0
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 10:27:583楼 得分:0
    先谢谢楼上的兄弟,我按你说的改了,还是找不到那个资源文件,我现在想能不能通过生成表,自动生成这些相应的类和映射XML啊,我感觉我的方法不是很好,也不一定能做到动态生成表,不要受我那段代码的影响,如果有别的方法都可以的。谢谢大家
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • defonds
    • 等级:
    发表于:2008-01-30 11:05:464楼 得分:0
    友情帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 14:22:325楼 得分:0
    我想回家,大家帮帮忙
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xql80329
    • 等级:
    发表于:2008-01-30 14:47:056楼 得分:0
    你可以动态创建hibernate.hbm.XML文件  也就是动态创XML文件.然后的操作就不必多说了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 15:46:487楼 得分:0
    动态创建XML倒没什么难度,主要在如何生成那个.java映射类啊,同时还得编译生成.class类吧?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 15:53:228楼 得分:0
    UP~~学习下~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 15:56:339楼 得分:0
    是哦。有难度哦。
    要生成文件是问题不大,关键是需要编译,得到编译后的class文件。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-30 15:58:3410楼 得分:0
    会不会相当于写一个Eclipse+Hibernate源码?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 08:03:1411楼 得分:0
    自己顶起来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 08:44:2012楼 得分:0
    帮你顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 15:09:2313楼 得分:0
    大家帮忙啊!!我想回家!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 17:05:2114楼 得分:0
    Could  not  read  mapping  document  from  file:  TAB.hbm.xml
    这个说的很清楚了是hibernate配置文件找不到正确的路径

    TAB.hbm.xml 文件中 的
    <class  name="pojo.name">
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 17:07:4315楼 得分:0
    楼上的朋友能给一个完整的例子吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 17:35:3316楼 得分:0
    你可以查查spring有没有按名称生成方法的代理类,如果有,动态生成表并产生POJO或者可行。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-31 17:36:2917楼 得分:0
    我的服务器是weblogic8.1不支持spring,只能靠手写
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-01 08:01:1418楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-01 14:23:2719楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-02 08:41:5220楼 得分:0
    不会,up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CAYU
    • 等级:
    发表于:2008-02-02 10:04:2021楼 得分:0
    1.先确保TAB.hbm.xml路径正确,classes目录开始算。
    2.TAB.hbm.xml  里边的xml不正确,你先写一个简单的测试一下。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-02 10:32:0722楼 得分:0
    不回家比较好啊,有加班工资。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-02 10:39:1223楼 得分:0
    有没有简单的例子参考一下?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-02 17:27:5824楼 得分:0
    没太理解你说的,解释清楚点,大家想
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-03 09:02:4525楼 得分:0
    简单来说,就是用Hibernate来创建一张物理不存在的表
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved