使用MyEclipse可视化开发Hibernate

使用MyEclipse进行Hibernate的逆向工程 在MyEclipse中,选择"File"菜单下的"New",然后选择"Hibernate",再选择"Hibernate Project"。在创建的Hibernate项目中,找到"src"目录并右键单击,选择"New",然后选择"Other"。在打开的逆向工程文件中,我们可以定义要逆向生成的Java类和映射文件的相关配置。例如,对于表"customer",MyEclipse将生成一个名为"Customer.java"的Java类和一个名为"Customer.hbm.xml"的映射文件。步骤4:运行逆向工程。 阅读详情

转帖,原文出处:http://www.blogjava.net/gm_jing/articles/309323.html

 

2.7.1  设置MyEclipse连接Oracle数据库

为在MyEclipse中设置连接Oracle数据库,在Eclipse中选择Window→Show View→Other→MyEclipse Database→DB Browser选项。右击DB Browser视图的空白部分,选择New选项,如图2 3所示。

 

 
图2 3  选择New选项

 

在弹出的窗口中,输入连接Oracle数据库所需要的相应参数,以及Oracle驱动类库的文件名与位置。单击Next按钮,如图2 4所示。

 

 
图2 4  输入连接Oracle数据库的参数

 

在Schema Details窗口中,选中Display Selected单选按钮。单击"Add"按钮,在弹出的Selection Needed窗口中选中SCOTT复选框。单击"OK"按钮,如图2 5所示。单击"Finish"按钮,关闭Schema Details窗口。

 

 
图2 5  选择SCOTT复选框

 

2.7.2  新建项目并增加Hibernate开发支持

在Eclipse中新建一个Java项目,名为"chapter02_first"。单击MyEclipse→Project Capabilities→Add Hibernate Capabilites选项,增加Hibernate的开发支持,如图2 6所示。

 

 
图2 6  增加Hibernate的开发支持

 

弹出Hibernate Support for MyEclipse窗口,在Hibernate Specification选项组中选中Hibernate 3.2单选按钮,选择MyEclipse Libraries和Hibernate 3.2 Core Libaries-<MyEclipse-Library>复选框选项,如图2 7所示,单击Next按钮。

 

 
图2 7  选择Hibernate类库的版本

 

其中的选项说明如表2-3所示。

表2-3  选项说明

选项

描述

Hibernate Specification

要添加到项目中的Hibernate具体版本,推荐选择Hibernate 3.2

Enable Hibernate Annotations Support

是否需要Hibernate Annotations的支持

MyEclipse Libraries/User Libraries

选择显示哪个位置的类库

Add checked Libraries to project build-path

选中的类库将会添加当前项目的构建路径中,但是相应的Jar文件将不会复制到项目中,这些Jar文件会在项目部署时复制

Copy checked Library Jars to project folder and add to build-path

选中的类库中的Jar文件将会被复制到项目并添加到构建路径中

Library Folder

一个相对于当前项目的路径,类库中的Jar会被复制到其中

 


 

在接下来的窗口中输入MyEclipse产生的Hibernate配置文件名及其路径。使用hibernate.cfg.xml文件名,路径保留默认值,如图2 8所示。

 

 
图2 8  设置生成hibernate.cfg.xml文件的名称及其路径

 

单击Next按钮,在DB Driver下拉列表框中选中已设置的oracledriver选项,其他选项保留默认值,如图2 9所示。

 

 
图2 9  选择要使用的数据库

 

单击"Next"按钮,清除"Create SessionFactory Class"复选框,如图2 10所示,单击Finish按钮结束设置。

 

 
图2 10  清除Create SessionFactory Class复选框

 

 


 

执行上述操作后,MyEclipse会在项目的构建路径中增加Hibernate的相关类库和Oracle的驱动类库。同时生成了开发Hibernate应用所需的hibernate.cfg.xml文件,整个项目的所有类库文件和配置文件如图2 11所示。

 

 
图2 11  整个项目的所有类库文件和配置文件

 

还需要修改MyEclipse自动生成的hibernate.cfg.xml文件,增加一些新的配置项并修改Oracle数据库方言类的名称。修改后的hibernate.cfg.xml的内容如下所示(加粗显示部分为需要修改处)。

 
  1. SRC 2 2  hibernate.cfg.xml  
  2. <?xml version='1.0' encoding='UTF-8'?>  
  3. <!DOCTYPE hibernate-configuration PUBLIC  
  4. "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
  5. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  6. <hibernate-configuration>  
  7.     <session-factory>  
  8.         <property name=  
  9. "dialect">org.hibernate.dialect.Oracle9iDialect</property>  
  10.         <property name=  
  11. "connection.url">jdbc:oracle:thin:@localhost:1521:ora9</property>  
  12. <property name="connection.username">scott</property>  
  13. <property name="connection.password">tiger</property>  
  14. <property name=  
  15. "connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  
  16. <property name="myeclipse.connection.profile">oracledriver</property>  
  17. <property name="current_session_context_class">thread</property>  
  18.         <property name="show_sql">true</property>  
  19. <property name="format_sql">true</property>  
  20.     </session-factory>  
  21. </hibernate-configuration> 

 

 

2.7.3  自动生成Guestbook类与映射文件

在Eclipse的DB Browser视图中,右击设置的oracledriver名。选择Open connection选项,如图2 12所示弹出Open Database Connection窗口,输入用户名及密码,如图2 13所示,单击OK按钮。

 

 
图2 12  选泽Open Database Connection选项

 
图2 13  输入用户名与密码

 

右击DB Browser视图中的guestbook表,选中"Hibernate Reverse Engineering"选项。如图2 14所示。

 

 
图2 14  选择Hibernate Reverse Engineering选项

 

 



 

弹出"Hibernate Mapping and Application Generation"窗口,输入与生成持久化类(POJO)有关的参数值。在Java src folder文本框中输入生成持久化类的保存路径,在Java package文本框中输入持久化类所使用的包名。选择"Create POJO<>DB Table mapping information、Create a Hibernate mapping file (*.hbm.xml) for each database table"及"Java Data Object (POJO<> DB Table)"复选框,清除"Create abstract class"复选框,如图2 15所示。

 
图2 15  设置生成POJO类与映射文件

 

单击Next按钮,在打开窗口中的Id Generator下拉列表框中选中sequence选项,其他选项保留默认值,如图2 16所示。

 

 
图2 16  选择主键生成策略

 

 


 

单击"Next"按钮,在打开如图2 17所示的窗口中单击"Finish"按钮。

  
图2 17  设置逆向工程的细节

 

经过上面的操作之后,MyEclipse会自动生成Guestbook.java和Guestbook.hbm.xml两个文件。Guestbook.hbm.xml文件的内容如下所示,需要修改008行~第010行的内容用来设置序列名。

 
  1. SRC 2 3  Guestbook.hbm.xml  
  2. 001 <?xml version="1.0" encoding="utf-8"?>  
  3. 002 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate   
  4. Mapping DTD 3.0//EN"  
  5. 003 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  6. 004 <hibernate-mapping>  
  7. 005 <class name="com.v512.examples.Guestbook" table="GUESTBOOK"   
  8. schema="SCOTT">  
  9. 006 <id name="id" type="java.lang.Integer">  
  10. 007     <column name="ID" precision="8" scale="0" />  
  11. 008     <generator class="sequence">  
  12. 009     <param name="sequence">gb_seq</param>  
  13. 010             </generator>  
  14. 011</id>  
  15. 012<property name="name" type="java.lang.String">  
  16. 013 <column name="NAME" length="20" not-null="true" />  
  17. 014</property>  
  18. 015<property name="phone" type="java.lang.String">  
  19. 016 <column name="PHONE" length="20" />  
  20. 017</property>  
  21. 018<property name="email" type="java.lang.String">  
  22. 019 <column name="EMAIL" length="40" />  
  23. 020</property>  
  24. 021<property name="title" type="java.lang.String">  
  25. 022 <column name="TITLE" length="80" not-null="true" />  
  26. 023</property>  
  27. 024<property name="content" type="java.lang.String">  
  28. 025 <column name="CONTENT" length="2000" />  
  29. 026</property>  
  30. 027<property name="createdTime" type="java.util.Date">  
  31. 028 <column name="CREATED_TIME" not-null="true" />  
  32. 029</property>  
  33. 030     </class>  
  34. 031 </hibernate-mapping> 

第005行中<class>标签的schema属性设置当前表属于哪个schema,第007行和第013行中<column>标签的precision、scale及length属性设置表中字段的精度、小数点位数和长度,not-null属性设置该字段是否不允许为空。

2.7.4  编写HibernateSessionFactoryUtil.java文件

在Hibernate应用中,如果只使用一个数据库,则通常只需要一个SessionFactory对象。为了方便整个应用取得同一个SessionFactory对象,我们应用设计模式中的单态模式。编写一个SessionFactory的工具类HibernateSessionFactoryUtil,HibernateSessionFactoryUtil.java文件的内容如下:

 
  1. SRC 2 4  HibernateSessionFactoryUtil.java  
  2. 001 package com.v512.util;  
  3. 002   
  4. 003 import org.hibernate.SessionFactory;  
  5. 004 import org.hibernate.cfg.Configuration;  
  6. 005   
  7. 006 public class HibernateSessionFactoryUtil {  
  8. 007     private static final SessionFactory sessionFactory;  
  9. 008     static {  
  10. 009         try {  
  11. 010             sessionFactory = new Configuration().configure(). buildSessionFactory();  
  12. 011         } catch (Throwable ex) {  
  13. 012             /*  
  14. 013              * 需要 捕获Throwable对象,   
  15. 014 * 否则捕获不到 Error及其子类,以及NoClassDefFoundError类型的错误  
  16. 015              */ 
  17. 016             throw new ExceptionInInitializerError(ex);  
  18. 017         }  
  19. 018     }  
  20. 019   
  21. 020     private HibernateSessionFactoryUtil() {  
  22. 021   
  23. 022     }  
  24. 023   
  25. 024     public static SessionFactory getSessionFactory() {  
  26. 025         return sessionFactory;  
  27. 026     }  
  28. 027 } 

HibernateSessionFactoryUtil类在载入JVM后新建Configuration对象,读取hibernate.cfg.xml文件,创建SessionFactory对象,通过HibernateSessionFactoryUtil类所提供的getSessionFactory()静态方法获取SessionFactory对象。

2.7.5  编写HibernateTest.java

编写一个测试的HibernateTest.java文件,通过Hibernate实现对guestbook表中数据的CRUD操作,在其中定义addGuestbook()、updateGuestbook()、getGuestbook()、getGuestbooks()、deleteGuestbook()和printGuestbook()方法。该文件的内容如下:

 
  1. SRC 2 5  HibernateTest.javaa  
  2. 001 package com.v512.examples;  
  3. 002   
  4. 003 import java.util.List;  
  5. 004 import org.hibernate.Query;  
  6. 005 import org.hibernate.Session;  
  7. 006 import org.hibernate.Transaction;  
  8. 007 import com.v512.util.HibernateSessionFactoryUtil;  
  9. 008   
  10. 009 public class HibernateTest {  
  11. 010     public void addGuestbook(Guestbook gb) {  
  12. 011Session session = HibernateSessionFactoryUtil.
  13. getSessionFactory().  
  14. getCurrentSession();  
  15. 012         Transaction tx = session.beginTransaction();  
  16. 013         session.save(gb);  
  17. 014         tx.commit();  
  18. 015     }  
  19. 016   
  20. 017     public Guestbook getGuestbook(Integer id) {  
  21. 018         Session session = HibernateSessionFactoryUtil.
  22. getSessionFactory().  
  23. getCurrentSession();  
  24. 019         Transaction tx = session.beginTransaction();  
  25. 020         Guestbook gb = (Guestbook) session.get
  26. (Guestbook.class, id);  
  27. 021         tx.commit();  
  28. 022         return gb;  
  29. 023     }  
  30. 024   
  31. 025     public List<Guestbook> getGuestbooks() {  
  32. 026         Session session = HibernateSessionFactoryUtil.
  33. getSessionFactory().  
  34. getCurrentSession();  
  35. 027         Transaction tx = session.beginTransaction();  
  36. 028         Query query = session.createQuery("from Guestbook");  
  37. 029         List<Guestbook> list = query.list();  
  38. 030         tx.commit();  
  39. 031         return list;  
  40. 032     }  
  41. 033   
  42. 034     public void updateGuestbook(Guestbook gb) {  
  43. 035         Session session = HibernateSessionFactoryUtil.
  44. getSessionFactory().  
  45. getCurrentSession();  
  46. 036         Transaction tx = session.beginTransaction();  
  47. 037         session.saveOrUpdate(gb);  
  48. 038         tx.commit();  
  49. 039     }  
  50. 040   
  51. 041     public void deleteGuestbook(Integer id) {  
  52. 042         Guestbook gb = getGuestbook(id);  
  53. 043         Session session = HibernateSessionFactoryUtil.
  54. getSessionFactory().  
  55. getCurrentSession();  
  56. 044         Transaction tx = session.beginTransaction();  
  57. 045         session.delete(gb);  
  58. 046         tx.commit();  
  59. 047     }  
  60. 048   
  61. 049     public void printGuestbook(Guestbook gb) {  
  62. 050         System.out.print("id:" + gb.getId() + "\t");  
  63. 051         System.out.print("name:" + gb.getName() + "\t");  
  64. 052         System.out.print("title:" + gb.getTitle() + "\t");  
  65. 053         System.out.print("content:" + gb.getContent() + "\t");  
  66. 054         System.out.println("createdTime:" + gb.getCreatedTime());  
  67. 055     }  
  68. 056   
  69. 057     public static void main(String[] args) {  
  70. 058         HibernateTest test = new HibernateTest();  
  71. 059         Guestbook gb = test.getGuestbook(new Integer(1));  
  72. 060   
  73. 061         System.out.println("-------------------------
  74. 读取单一记录-----------------------------");  
  75. 062         test.printGuestbook(gb);  
  76. 063   
  77. 064         System.out.println("-------------------------
  78. 读取所有记录-----------------------------");  
  79. 065         List<Guestbook> list = test.getGuestbooks();  
  80. 066         for (Guestbook g : list) {  
  81. 067             test.printGuestbook(g);  
  82. 068         }  
  83. 069   
  84. 070         System.out.println("-------------------------
  85. 更新记录---------------------------------");  
  86. 071         gb.setName("关羽");  
  87. 072         test.updateGuestbook(gb);  
  88. 073         test.printGuestbook(gb);  
  89. 074   
  90. 075         System.out.println("-------------------------
  91. 删除记录---------------------------------");  
  92. 076         test.deleteGuestbook(new Integer(1));  
  93. 077   
  94. 078 HibernateSessionFactoryUtil.getSessionFactory().close();  
  95. 079     }  
  96. 080 } 

当使用HibernateTest类中getGuestbook()方法根据id值获取一条记录时,Hibernate找到数据库中这条记录,然后再生成这条记录所对应的持久化对象返回。updateGuestbook()方法更新一条记录时首先找到这条记录所对应的持久化对象,然后调用这个对象的setter方法修改属性值,并通过Hibernate完成数据库中数据的更新;deleteGuestbook()方法删除一条记录时首先找到这条记录所对应的持久化对象,然后通过Hibernate删除持久化对象删除进而数据库中所对应的数据。

2.7.6  程序运行结果

这个实例使用Hibernate完成对数据库中数据的CRUD操作,借助MyEclipse的帮助开发Hibernate应用,不需要手工编写持久化(POJO)类、Hibernate的配置和映射文件。Hibernate通过操作持久化对象完成对数据库数据的CRUD操作, HibernateTest.java运行结果如下:

 
  1. -------------------------读取单一记录-----------------------------  
  2. id:1    name:刘伟 title:大家好     
  3. content:欢迎大家学习Hibernate技术。  
  4.         createdTime: 2009-03-12 06:17:59.0 
  5. -------------------------读取所有记录-----------------------------  
  6. id:1    name:刘伟 title:大家好     
  7. content:欢迎大家学习Hibernate技术。  
  8.         createdTime: 2009-03-12 06:17:59.0 
  9. -------------------------更新记录---------------------------------  
  10. id:1    name:关羽 title:大家好     
  11. content:欢迎大家学习Hibernate技术。  
  12.         createdTime: 2009-03-12 06:17:59.0 
  13. -------------------------删除记录--------------------------------- 

 

 

2.7.7  使用 HQL 编辑器调试HQL语句

MyEclipse中包含一个Hibernate编辑器和多个相关视图,允许根据当前项目的配置来调试HQL语句。"Hibernate Dynamic Query Translator"视图显示当前HQL语句所对应的SQL语句;"Hibernate Query Result"视图查看HQL语句的执行结果,返回的持久化对象的属性值通过"Properties"视图显示;"Query Parameters"视图可以为调试的HQL语句输入需要的参数值。

右击Package Explorer视图中的chapter02_first项目,选中快捷菜单中的"MyEclipse→Open HQL Editor"选项,如图2 18所示。

 

 
图2-18  MyEclipse→Open HQL Editor选项

 

打开HQL编辑器,输入"from Guestbook"。单击运行图标执行查询,并且通过相关视图查看查询结果,如图2 19所示。

 

 
图2 19  在HQL编辑器中执行HQL查询并查看结果

 

还可以使用"Query Parameters视图输入需要绑定参数的HQL查询语句,如图2 20所示。

 

 
图2 20  使用Query Parameters 视图输入需要绑定参数的HQL查询语句

 

 

2.8  Hibernate应用的开发方式

2.8.1  自底向上,从数据库表到持久化类

采用自底向上的开发方式,采用手工或者MyEclipse等开发工具直接根据数据库中表的结构生成对应的映射文件和持久化类。这是实际开发中最常用的一种方式,也是本书所推荐的方式。通过这种方式最小化了手工编码,降低了出错的可能性。

2.8.2  自上向下,持久化类到数据库表

首先编写持久化类,然后根据持久化类的代码手工编写或者采用工具生成映射文件,进而生成数据库表结构。这种方式在实际开发中也经常使用,可能出现的问题是生成的数据库表结构与实际需要的数据库表结构之间的差异,需要手工调整。

2.8.3  从中间出发,向上与向下发展

首先编写持久化类与数据库表的映射文件,然后根据映射文件手工编码或者采用工具向上生成持久化类,向下生成数据库表结构。

2.9  设置Hibernate使用连接池

Hibernate默认使用一个功能简单的连接池,通常只用于开发阶段测试之用。为了更高效地使用Hibernate,可以设置Hibernate使用第三方C3P0或者应用服务器(容器)所带的数据库连接池。

2.9.1  设置使用Tomcat中的连接池

如果开发运行在应用服务器中的程序,建议其中配置的连接池,如允许Hibernate使用通过在Tomcat中所配置的连接池。为此修改Tomcat中的context.xml文件,该文件位于tomcat安装目录的conf子目录中,同时还需要将Oracle数据库的驱动类库ojdbc6.jar或者ojdbc14.jar添加到tomcat的lib目录下。修改后的context.xml文件内容如下:

 
  1. SRC 2 6  context.xml  
  2. <Context reloadable="true">  
  3.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  4.     <Resource name="jdbc/oracleds" auth="Container"   
  5.     type="javax.sql.DataSource" maxActive="100"   
  6. maxIdle="30" maxWait="10 000" username="scott" password="tiger"   
  7.         driverClassName="oracle.jdbc.OracleDriver" url= "jdbc:oracle:thin:@localhost:1521:ora9" />  
  8. </Context> 

设置Tomcat提供的连接池之后,要在Hibernate的配置文件(hibernate.cfg.xml)中添加connection.datasource属性,如下面的代码所示:

 
  1. <property name="connection.datasource">  
  2. java:comp/env/jdbc/oracleds</property> 

其中的java:comp/env/jdbc/oracleds是Tomcat中设置的数据源对象的JNDI名称。

2.9.2  使用C3P0连接池

如果让Hibernate使用第三方C3P0连接池,则在Hibernate的配置文件中添加如下的配置信息,还需要把C3P0类库添加到当前项目的构建路径下。

 
  1. <property name="connection.provider_class">  
  2.         org.hibernate.connection.C3P0ConnectionProvider  
  3. </property>  
  4. <property name="hibernate.c3p0.min_size">5</property>  
  5. <property name="hibernate.c3p0.max_size">10</property>  
  6. <property name="hibernate.c3p0.max_statements">50</property>  
  7. <property name="hibernate.c3p0.timeout">3600</property>  
  8. <property name="hibernate.c3p0.idle_test_period">120</property>  
  9. <property name="hibernate.c3p0.acquire_increment">2</property> 

- hibernate.c3p0.min_size:设置连接池的最小连接数。

- hibernate.c3p0.max_siz:设置连接池的最大连接数。

- hibernate.c3p0.timeout:设置连接池中的连接的最大空闲时间,超时后会被删除,单位为秒。

- hibernate.c3p0.max_statements:设置连接池中Statement对象的最大数量。

- hibernate.c3p0.idle_test_period:设置检查连接池中空闲连接的间隔时间,单位为秒。

- hibernate.c3p0.acquire_increment:设置连接池的连接用完后每次新建连接的数量。

2.9.3  使用自定义连接池

在Hibernate应用中还可以使用定义连接池,该连接池需要实现org.hibernate.connection.ConnectionProvider接口,并在Hibernate配置文件中设置hibernate.connection.provider_class属性,其值为这个实现类的名称。

2.10  使用C3P0连接池

2.10节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。

2.10.1  创建chapter02_c3p0项目

在这个实例中让Hibernate使用第三方C3P0连接池获取操作数据库的连接对象,通过复制chapter02_first项目创建chapter02_c3p0项目。同时还需要把C3P0连接池的类库(c3p0-*.*.*.jar)添加到当前项目的构建目录下。当前项目构建路径中的类库如图2 21所示。

 

 
图2 21  chapter02_c3p0项目构建路径中的类库

 

 

 


 

2.10.2  编辑hibernate.cfg.xml文件

当前项目使用了C3P0的连接池技术,修改hibernate.cfg.xml文件以配置相应的参数,其内容如下:

 
  1. SRC 2 7  hibernate.cfg.xml  
  2. <?xml version='1.0' encoding='UTF-8'?>  
  3. <!DOCTYPE hibernate-configuration PUBLIC  
  4.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
  5.           "http://hibernate.sourceforge.net  
  6.           /hibernate-configuration-3.0.dtd">  
  7. <hibernate-configuration>  
  8.     <session-factory>  
  9. <property name="connection.driver_class">oracle.jdbc.driver.  
  10. OracleDriver</property>  
  11. <property name="connection.url">jdbc:oracle:thin:@localhost:  
  12. 1521:ora9</property>  
  13. <property name="dialect">org.hibernate.dialect.  
  14. Oracle9iDialect</property>  
  15. <property name="connection.username">scott</property>  
  16. <property name="connection.password">tiger</property>  
  17. <!-- C3P0 连接池的配置 -->  
  18. <property name="connection.provider_class">  
  19.         org.hibernate.connection.C3P0ConnectionProvider  
  20. </property>  
  21. <property name="hibernate.c3p0.min_size">5</property>  
  22. <property name="hibernate.c3p0.max_size">10</property>  
  23. <property name="hibernate.c3p0.max_statements">50</property>  
  24. <property name="hibernate.c3p0.timeout">3600</property>  
  25. <property name="hibernate.c3p0.idle_test_period">120</property>  
  26. <property name="hibernate.c3p0.acquire_increment">2</property>  
  27. <property name="current_session_context_class">thread</property>  
  28. <property name="show_sql">true</property>  
  29. <property name="format_sql">true</property>  
  30. <mapping resource="com/v512/examples/Guestbook.hbm.xml" />  
  31.     </session-factory>  
  32. </hibernate-configuration> 

 

 

 

2.10.3  chapter02_c3p0项目的运行与输出

chapter02_c3p0项目中,其他文件都不需要修改,运行HibernateTest类输出的结果chapter02_first项目运行输出结果完全一样。


cst使用局部网格加密,手动加密,special设置等方法合理网格布局加速仿真速度 在CST中,计算复杂模型或者阵列的时候往往需要耗费大量仿真时间,除了使用更高性能的电脑或工作站进行仿真,合理对CST的仿真网格进行适当设置也是必不可少的一步。CST中网格设置影响模拟的精度和速度,因此花时间理解网格过程是很重要的。 阅读详情

相关推荐

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

使用MyEclipse可视化开发Hibernate实例

2.7  使用MyEclipse可视化开发Hibernate实例2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率。操作的数据库表还是guestbook表,所使用MyE

snowyz的专栏 4326

NAT反向代理技术的实现(外网访问内网)

NAT反向代理技术的实现(外网访问内网)(版权所有,引用 请联系作者,注明出处) NAT技术是网络中的重要应用之一。当有一个场景:内网搭建了服务器,需要外网访问时,可以借助NAT映射来实现。如:单位建立了一个Web服务器,我们希望在员工回家之后,依然可以访问到它,那怎么实现呢? 下面的拓扑图,就用来示范这个应用反面场景的实现过程。 一、题目要求: 地址配置如图。使用静态路由: 1、配置右侧交换机2950T,实现单臂路由; 2、配置路由使网络连通; 3、配置NAT访问,实现外网对风网服务器的

joyousmime的博客 8488

MyEclipse10下实现Hibernate框架

MyEclipse10下实现Hibernate框架 目录 MyEclipse10下使用Hibernate框架实例... 1 第1节         什么是Hibernate. 1 第2节         什么是ORM... 1 第3节         Hibernate快速入门... 1 第一步:下载Hibernate. 1 第二步:创建数据库与表... 2 第三步创建实体类......

justDoIt 1328

Matlab App Designer自学笔记(六):坐标轴控件axis函数绘图方法

作用: 绘制函数显示 显示图像(jpg png tiff) 颜色选项: r(红色) g(绿色) b(蓝色) w(白色) k(黑色) 其他 一、坐标区控件及设置 可以对坐标去进行设计: 二、功能实现及编程 功能:点击“绘图按钮”,能显示曲线。 实现:对按钮设置回调函数 若要多个图像显示在一个坐标系中,需要语句:hold(app.UIAxes,"on"); app.UIAxes是这个坐标轴的名字。 function ButtonP...

陶小桃Blog 3万+

STM32实战——七段数码管动态扫描技术详解

本文详细解析了STM32控制七段数码管的动态扫描技术,包括硬件连接、CubeMX配置及编程实现。通过分时复用原理和优化代码逻辑,实现稳定显示效果,并解决亮度不均、闪烁等常见问题。适合嵌入式开发者快速掌握STM32数码管驱动技术。

weixin_42561143的博客 279

【用MyEclipse2017创建一个Hibernate Web登录项目】

靠手工实现JavaBean/JDBC的系统Hibernate自动生成了所需的JavaBean,也取代了原JDBC的功能!可简单形象地理解为:Hibernate=JavaBean+JDBC。

相关项目可以查看https://gitee.com/fan-pl或https://github.com/fpl1116 759

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)和汇丰控股(0005.HK)为例,使用 Python 进行数据请求和解析。

kk_stoper的博客 1517

myeclipse java可视化_使用MyEclipse可视化开发Hibernate实例

使用MyEclipse可视化开发Hibernate实例2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率。操作的数据库表还是guestbook表,所使用MyEclipse的版本为7.0,不...

weixin_35645813的博客 448

IsaacSim环境配置之配置本地资产包

摘要:Isaac Sim官方资产文件默认从美国服务器下载速度慢,影响开发体验。建议下载本地资产包并配置本地资源源。具体步骤包括:1) 下载资产包并解压;2) 修改Isaac Sim安装路径下的配置文件,添加本地资产路径配置,包括机器人、人物、环境等各类资源目录。配置完成后可显著提升资产加载速度,改善开发效率。文中提供了详细的配置文件修改示例和截图说明。

拥抱具身智能,昇腾Ascend C 330

道通无人机信号分析

本文分析了道通无人机及其遥控器的EIRP参数(表1-2),发现不同地区的功率标准存在差异。针对5230MHz图传信号,观测到四帧连续信号结构类似LORA分包传输。脉冲分析(表3)显示固定3.9ms脉宽和1.1ms间隔。频谱异常表现为非矩形窗特征,经分析系多径效应引起的频率选择性衰落所致——不同路径传播导致特定频率出现相长/相消干涉,形成波峰波谷的起伏频谱特征。这种现象与无线信道的多径时延、衰减差异直接相关。

jiaotinglang2580的博客 487

MyEclipse可视化开发Hibernate实例

开发可视化hibernate实例,意思就是用工具根据表生成hbm、实体类文件。 1、新建一个java project,输入项目名称如:hibernateMap 2、选中项目——》右键——》myeclipse——》add hibernate capabilities 3、这时是弹出hibernate的jar包选中,一般只选核心包和annotationb包——》next 4、下边是创建hibe

smile的专栏 926

最新Python爬虫实战(入门爬虫篇)——案例8:图书网畅销榜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过 Python 爬虫技术,成功实现了对图书网畅销榜多页数据的批量爬取与 Excel 保存。代码采用模块化设计,包含分页参数构造、API 接口请求、JSON 数据解析、Excel 数据持久化等完整流程;通过配置模拟浏览器的请求头,有效规避基础反爬策略,保证请求的稳定性。整个爬虫逻辑遵循 “分页遍历 → 接口请求 → JSON 解析 → 提取图书信息 → 保存到 Excel” 的标准流程,与电商类接口爬取范式高度一致。

努力让自己发光,对的人才能迎着光而来 29万+

使用MyEclipse可视化开发Hibernate实例(在myeclipse中搭建Hibernate)

2.7.1  设置MyEclipse连接Oracle数据库 为在MyEclipse中设置连接Oracle数据库,在Eclipse中选择Window→Show View→Other→MyEclipse Database→DB Browser选项。右击DB Browser视图的空白部分,选择New选项,如图2 3所示。   图2 3  选择New选项

星晴coral 1977

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hibernate在myeclipse 中的配置

使用MyEclipse可视化开发Hibernate实例   2.7  使用MyEclipse可视化开发Hibernate实例 2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。 这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发J

Inkbamboo专栏 3954

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

myeclipse中使用hibernate

作为菜鸟,花了整整一个下午的时间,好容易在MyEclipse里面使用Hibernate成功运行了第一段代码。现将步骤总结如下:1。安装新版MyEclipse。新版中关于Hibernate的功能要强大很多,我的版本是MyEclipseEnterpriseWorkbenchInstaller_5.0M2_E3.2,Eclipse版本是eclipse-SDK-3.2-win32。2。新建

659

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

MyEclipse开发Hibernate入门实例

使用MyEclipse可视化开发Hibernate实例 使用MyEclipse可视化开发Hibernate实例 2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。 这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率。操作的数据库

God is Coder 679

用MyEclipse开发Hibernate入门实例

以下为一个Hibernate入门实例,使用MyEclipse开发。 一、环境 1.eclipse 3.2.2 2.myeclipse 5.1.1 3.jdk 1.5 二、简要说明 数据库为mysql 在mysql中建立一个test数据库,建立cat表 CREATE TABLE `cat` (  `cat_id` varchar(32) NOT NULL,  `n

zqf_office的专栏 573

MyEclipse技术全面解析——集成WebSphere IDE插件

MyEclipse为WebSphere开发人员提供了开发所需的额外功能,欢迎大家下载最新版本MyEclipse体验!

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 889
上一篇: hibernate 可选的配置属性
下一篇: Java hibernate id 生成
without0815
博客等级 码龄15年 107粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值