首页 > 其他分享 >eclipse下wtp+HibernateTools开发笔记

eclipse下wtp+HibernateTools开发笔记

时间:2023-09-04 16:01:01浏览次数:36  
标签:wtp Hibernate name tb1 eclipse Tb1 hibernate HibernateTools id


作者fbysss
关键字:eclipse,hibernate


准备包:


HibernateTools-3.1.0.beta4.zip


GEF-SDK-3.1.1.zip


hibernate-3.1.2.zip


JEM-SDK-1.1.0.1.zip


wtp-sdk-M200602010238.zip


1.新建一个java Project,建立src目录,建立com.sss.common包,


2.Java->Builder Path->User Libraies 新建一个Hibernate的用户类库,把hibernate中hibernate3.jar以及/lib下面的jar都加入进去


3.然后建立一个MSSQL用户库,把SQL JDBC的类库加入。(注意,如果安装的是sp4的类库,只能对应SQLSERVER2000 SP4,否则到时hibernate tool无法刷新出数据库结构。)


然后在工程的属性中设定Java Build Path,在Libraries页中加入Hibernate和MSSQL类库。


4.新建Hibernate.cfg.xml:new->Other

eclipse下wtp+HibernateTools开发笔记_sqlserver


路径选择src下。选定db类型,并填写url:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ssstest;SelectMethod=cursor


填写用户名/密码。


5.新建一个Hibernate Console Configuration,命名为sssPrj。需要注意的是Classpath那里需要将jdbc driver包加入



eclipse下wtp+HibernateTools开发笔记_sqlserver_02


(在window->show view->Other->Hibernate Configurations),

eclipse下wtp+HibernateTools开发笔记_generator_03


下方面版上就会出现Hibernate Console Configuration的视图,可以对Hibernate Console Configuration进行编辑、删除等操作。


6.新建一个Hibernate.reveng.xml,路径依然选择src,Console Configuration 选择刚才建立的sssPrj,然后点击Refresh,数据库的结构就出来了。选中指定的表,点击“include”按钮,加入到右边的Table Filter列表中。然后Finish。

eclipse下wtp+HibernateTools开发笔记_hibernate_04


5.自动生成java代码

eclipse下wtp+HibernateTools开发笔记_hibernate_05


 

eclipse下wtp+HibernateTools开发笔记_session_06



eclipse下wtp+HibernateTools开发笔记_hibernate_07

输出页中第一项一定要选择,那就是生成pojo代码的。DAO是一个Home文件,用于封装部分操作。


设置好之后,点击apply,run,代码就自动生成了。


需要修改的两个地方:


protected SessionFactory getSessionFactory() { 

 
          try { 

 
Could not locate SessionFactory in   JNDIjavax.naming.NoInitialContextException  : Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

 


      修改为


   

return (SessionFactory) new Configuration().configure().buildSessionFactory(); 

 
          } 

 
          catch (Exception e) { 

 
              log.error("Could not locate SessionFactory in JNDI", e); 

 
              throw new IllegalStateException("Could not locate SessionFactory in JNDI"+e.toString()); 

 
          } 

 
      } 

 

    

 

    

 

    

 
      public Tb1 findById( java.lang.String id) { 

 
          log.debug("getting Tb1 instance with id: " + id); 

 
          try { 

 
                    System.out.println("test0....."+sessionFactory); 

 
No CurrentSessionContext configured!
 
                 修改为如下两句 

 
  Session session = sessionFactory.openSession();//  先加入import org.hibernate.Session; 

 
              //Tb1 instance = (Tb1) session.load("com.sss.commmon.Tb1", id);这句也可以 

 
                 Tb1 instance = (Tb1) session.get("com.sss.commmon.Tb1", id); 

 
                  

 
              if (instance==null) { 

 
                  log.debug("get successful, no instance found"); 

 
              } 

 
              else { 

 
                  log.debug("get successful, instance found"); 

 
              } 

 
              return instance; 

 
          } 

 
          catch (RuntimeException re) { 

 
              log.error("get failed", re); 

 
              throw re; 

 
          }


6.编写测试类。


package com.sss.commmon; 

 

    

 

  public class TestHib { 

 

    

 
         /** 

 
          * @param args 

 
          */ 

 
         public static void main(String[] args) { 

 
                // TODO Auto-generated method stub 

 
                Tb1Home tb1Home = new Tb1Home(); 

 
                Tb1 tb1 = tb1Home.findById("111"); 

 
                //************************ 

 
                System.out.println("tb1.id is:"+tb1.getId()); 

 
                System.out.println("tb1.name is :"+tb1.getName()); 

 
         } 

 

    

 

  }

输出为:


test0.....org.hibernate.impl.SessionFactoryImpl@10ab323


tb1.id is:111


tb1.name is : 第一条记录


大功告成!


下一步将进行数据操作测试。


 


 


更新:update

public static void update() 

 
      { 

 
          try 

 
          { 

 
              //通过Configuration获得一个SessionFactory对象 

 

  SessionFactory sf 

 

  = new Configuration().configure().buildSessionFactory(); 

 
              //打开一个Session 

 
              Session session = sf.openSession(); 

 
              //开始一个事务 

 
              Transaction tx = session.beginTransaction(); 

 
              //创建一个Student对象 

 
              Tb1 tb1 = findById("222"); 

 
              //if(true)return ; 

 
              //通过Student的setter方法改变它的属性 

 
              //注意student_id不用我们设置 

 
              //tb1.setId("111"); 

 
              tb1.setName("更新第一条"); 

 
               

 
              //通过session的save()方法将Student对象保存到数据库中 

 
              System.out.println("ttttttt1."); 

 
              session.update(tb1); 

 
              //save(tb1);插入用save 

 
              System.out.println("ttttttt2."); 

 
              //提交事务 

 
              tx.commit(); 

 
              //关闭会话 

 
              session.close(); 

 
          } 

 
          catch(Exception e) 

 
          { 

 
              e.printStackTrace(); 

 
          } 

 
      }

 


hbm文件:

<  hibernate-mapping  >
 
      <  class   name  =  "com.sss.commmon.Tb1"   table  = 
 "tb1"  
 schema 
 = 
 "dbo"  
 catalog 
 = 
 "ssstest" 
 >
 
          <  id   name  =  "id"   type  = 
 "string" 
 >
 
              <  column   name  =  "id"   length  = 
 "10"  
 />
 
              <  generator   class  =  "native"  ></  generator 
 >
 
          </  id  >
 
          <  property   name  =  "name"   type  = 
 "string" 
 >
 
              <  column   name  =  "name"   length  = 
 "10"  
 />
 
          </  property  >
 
      </  class  >
 
</  hibernate-mapping  >

这里generator设置为native,表示id的类型由数据库自己决定,需要数据库支持自动增长列,比如MSSQL,就需要把id设置为整型,并设置为“标识”字段。Hibernate不负责生成id。如果设置为identity,则由hibernate来自动增长。

标签:wtp,Hibernate,name,tb1,eclipse,Tb1,hibernate,HibernateTools,id
From: https://blog.51cto.com/u_16245757/7351837

相关文章

  • Eclipse中设置编码的方式
    Eclipse中设置编码的方式如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使Java文件使用UTF-8编码。然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统(WindowsXP、Windows2000简体中文)的缺省编码是GB18030,在此......
  • eclipse运行不自动启动浏览器的方法
    通过服务器启动,将不启动浏览器步骤如下:java文件右击--RunAs-->RunConfigurationsRun后将不启动浏览器......
  • myeclipse svn 修改用户名和密码
    由于在svn的界面中并没有为我们提供直接更换用户名密码的地方,所以一旦我们需要更换用户名的就需要自己想一些办法。   解决方案:在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码自动保存起来以便下次自动使用,不要再次手工输入,但是有些时候需要变更密码或者用户......
  • Eclipse SVN插件的帐号、密码修改
        Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。解决思路:    既然界面上不能进行修改,那就只有......
  • JasperReports+iReport在eclipse中的使用
    一、介绍1)它可以PDF,HTML,XML等多种形式产生报表或动态报表,在新版本还支持CSV,XLS,RTF等格式的报表;2)它按预定义的XML文档来组织数据,来源多(如:关系数据库,Java容器对象(collection,arrays)等);报表的填充过程:先产生报表设计对象->序列化该对象->存储在磁盘或网络-......
  • MyEclipse中使用复制粘贴功能卡的解决办法
    最近在MyEclipse中编辑代码时,使用快捷键进行复制粘贴,经常会导致编辑器短暂的停顿,光标不跟随,居然反应不过来,几近假死。想来想去应该是编辑上的什么配置或者是IDE的什么功能导致,于是进入Preferences查找edit功能,进行一个个的测试,最后发现原来是代码的超链功能导致。 进入方法:Window......
  • eclipse插件OpenExplorer
    1.OpenExplorer从Eclipse中打开窗口的插件下载地址:https://github.com/samsonw/OpenExplorer/downloadsgithub地址:https://github.com/samsonw/OpenExplorer官方介绍 安装方式,只要将jar包下载后放在eclipse安装目录的dropins下重启即可 eclipse的dropins的目录中可以放link配置......
  • Eclipse集成Tomcat
    1.打开Eclipse,点击“Window”,选择“Preferences”2.找到“Server”(如果找不到Server,查看本页最下方的解决办法)---“RuntimeEnvironments”--“Add”,——运行时环境(RuntimeEnvironments)——添加(Add),添加Tomcat服务器对应安装的Tomcat版本选择ApacheTomcat。 下一步通......
  • 网易一面:单节点2000Wtps,Kafka怎么做的?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • eclipse安装
    1.下载安装eclipse法一:网盘下载链接:https://pan.baidu.com/s/14FRu6jrT6I58xmFsAFTI5Q提取码:wsen法二:官方下载链接:http://www.eclipse.org/downloads/点击 DownloadPackages 根据系统选择 选择SelectAnotherMirror选择China.. 捐款页面不要理会 下载完成......