下载|安装|配置|更新

下载|安装|配置|更新

免费下载、安装与配置、新版发布等
Java EE开发

Java EE开发

Spring、WebSphere、Maven相关、EJB、JSP、XDoclet等
移动开发

移动开发

iOS、Android跨平台移动应用开发
SDC

SDC

新一代软件分发管理神器!支持MyEclipse、Eclipse、IntelliJ、WebStorm等热门IDE.
综合讨论区

综合讨论区

意见、吐槽、属于Java人的轻松乐园…

MyEclipse数据库教程:使用Java项目查看JPA工作方式

Java EE开发momo77 发表了文章 • 0 个评论 • 40 次浏览 • 2019-11-27 16:57 • 来自相关话题

**建立一个项目**
一般情况,JPA Facet将被添加到Java或Web项目中。在本教程中,您将使用一个简单的Java项目来查看JPA的工作方式。
注意:您可以[下载本教程中开发的项目](https://www.evget.com/resource/detail-demo-14494),然后导入到您的工作区中。
1、单击下拉箭头![请输入图片名称](https://www.evget.com/Content/ ... 53.png),然后选择Java Project。
2、在“Project Name”字段中输入SampleJPAProject,选择默认选项,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 58.gif)
3、单击![请输入图片名称](https://www.evget.com/Content/ ... 46.png),选择MyEclipse Database Explorer打开透视图。
4、在数据库浏览器中,选择MyEclipse Derby连接,然后单击。
![请输入图片名称](https://www.evget.com/Content/ ... 54.gif)
**注意:**在建立数据库连接之前,无法添加JPA Facet,因为需要选择要使用的连接。
5、切换回MyEclipse Java Enterprise透视图,右键单击项目,然后选择**[MyEclipse](https://www.myeclipsecn.com/)** > Project Facets > Install JPA Facet。
6、在目标运行时下拉列表中选择MyEclipse通用Java运行时,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 51.png)
7、从平台下拉列表中选择一个平台,如果JPA实现类型默认为用户库,则选择与所选平台相对应的库。如果未列出任何库,可单击![请输入图片名称](https://www.evget.com/Content/ ... 10.png)下载适当的库。
![请输入图片名称](https://www.evget.com/Content/ ... 16.png)
8、在“Connection”字段中选择MyEclipse Derby,选中“Add driver library to build path”和“Override default schema”复选框,然后从“Schema”下拉列表中选择CLASSICCARS。单击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 24.gif)
现在,项目中已添加了完全配置的JPA Facet,其中包括JPA配置信息/DB连接信息以及添加到项目构建路径中的所有必需的JDBC和JPA库。如果这是一个Web项目,在将项目部署到应用程序服务器上并在其中运行时,所有构建路径的附加内容都将准备好进行部署。
![请输入图片名称](https://www.evget.com/Content/ ... 70.gif)

**[下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)**

**创建一个Java包**

在下一个步骤中,对数据库表中的数据进行反向工程,并为项目生成实体。在进行逆向工程之前,需要创建一个Java包,并在其中放置这些实体。
1、展开项目,右键单击src文件夹,然后选择New > Package。
![请输入图片名称](https://www.evget.com/Content/ ... 07.gif)
2、在“Name”字段中输入com.myeclipseide.jpa,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 64.gif)

**逆向工程数据库表**

现在已经建立了项目,可以将PRODUCTLINE表反向工程到项目中,并开始使用所生成的实体。
1、右键单击该项目,然后选择JPA Tools > Generate Entities & DAOs。
**注意:**您可以选择使用MyEclipse逆向工程工具或DALI实体生成器。选择,单击“确定”,然后完成向导。本教程使用MyEclipse逆向工程工具。
![请输入图片名称](https://www.evget.com/Content/ ... 96.png)
2、选择PRODUCTLINE表,单击添加,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 42.gif)
在“Java Package”字段中,单击“ Browse”,然后选择先前创建的com.myeclipseide.jpa程序包。选中以下复选框:
- Entity Bean Generation:让MyEclipse生成注释为用作JPA实体的普通Java类。
- Create abstract class;如果您希望自定义生成的类,而不必每次都覆盖更改,则MyEclipse可以生成基本抽象类以及您可以自定义和使用的具体子类。每次进行反向工程时,MyEclipse只会覆盖抽象基类,并在具体子类中保留更改。
- Update persistence.xml:与Hibernate类似,您可以在JPA配置文件中列出正在使用的所有JPA实体。
- Java Data Access Generation:让MyEclipse生成DAO实用程序类,让您可以立即从数据库中保存/查找/更新/删除实体。此代码包含了JPA实体管理器,使得使用实体和数据库变得非常容易。
- Generate Precise findBy Methods:让MyEclipse生成findByXXX方法,其中XXX与反转的实体上的每个属性有关。这样一来,可以使用任何属性作为查找实体的方法,轻松地从数据库访问实体。
- Generate Java Interfaces:选择此选项将创建带有相应DAO实现类的接口类。取消选择此选项仅生成DAO实现类,而没有用于定义接口的单独类。
![请输入图片名称](https://www.evget.com/Content/ ... 15.gif)
3、单击完成。查看通过展开com.myeclipseide.jpa包生成的MyEclipse资源。
![请输入图片名称](https://www.evget.com/Content/ ... 44.gif)
生成的实体描述如下:
- EntityManagerHelper:使用直接JPA时,开发人员需要使用EntityManager class。EntityManager通过提供用于访问管理器的静态方法以及易于调用的最常用操作,此生成的帮助程序类让使用EntityManager的过程变得更加容易。
- IProductline:定义相应DAO实现类的接口的类。
- Productline:此类是表示数据库表PRODUCTLINE的JPA实体(POJO)。该POJO包含PRODUCTLINE表的字段,并表示数据库中的一行。
- ProductlineDAO:此类包含EntityManagerHelper以便为我们提供易于使用的方法,专门用于在数据库中添加/查找/更新和删除产品。
注意:逆向工程完成后,您可以打开“Persistence”透视图,使用某些持久性和数据源工具来分析数据库和项目中的数据。

**编写应用程序**

由于MyEclipse生成了许多代码,所以您可以快速将精力放在“Business Logic”上,或更具体地说是“实际完成工作的代码”。在本部分中,您将编写一个具有main方法的Java类,该方法将Productline插入数据库,对其进行检索、更新并删除。使用此代码,您会发现在应用程序中使用JPA实体是多么容易!
**一、创建一个类**
1、右键单击com.myeclipseide.jpa软件包,然后选择New Class。
2、在“Name”字段中键入RunJPA,选中Public static void main复选框,然后单击“Finish”。
![请输入图片名称](https://www.evget.com/Content/ ... 76.gif)
在构建新类和main方法之后,需要编写代码来操作Productline实例。
**注意:**以下代码看起来很长而且很复杂,这是因为我们试图在一个代码块中显示四个不同的示例。如果您查看每个操作(保存、加载、更新、删除),就会发现它们都不由几行代码组成。
3、将以下代码添加到main方法中,然后按CTRL + S保存。

{{{
/* 1. Create a reference to our ID */
String productLineID = "Men's Shoes";

/* 2. Create a new Productline instance */
Productline newProductline = new Productline(
productLineID,
"Shoes for men.", "Men's Shoes", null);

/* 3. Create a DAO instance to use */
ProductlineDAO dao = new ProductlineDAO();

/* 4. Store our new product line in the DB */
EntityManagerHelper.beginTransaction();
dao.save(newProductline);
EntityManagerHelper.commit();

/* 5. Now retrieve the new product line,
using the ID we created */
Productline loadedProductline = dao.findById(productLineID);

/* 6. Print out the product line information */
System.out.println("*NEW* Product Line
[productLine="
+
loadedProductline.getProductline() + ",
textDescription="
+
loadedProductline.getTextdescription() + ", image="
+
loadedProductline.getImage() + "]");

/*
* 7. Now let's change same value on the product line, and save the
* change
*/
loadedProductline.setTextdescription("Product line for men's shoes.");
EntityManagerHelper.beginTransaction();
dao.save(loadedProductline);
EntityManagerHelper.commit();

/*
* 8. Now let's load the product line from the DB again, and make sure
* it text description changed
*/
Productline secondLoadedProductline =
dao.findById(productLineID);
System.out.println("*REVISED* Product Line ["
+ "productLine=" +
secondLoadedProductline.getProductline()
+ ", textDescription=" +
secondLoadedProductline.getTextdescription()
+ ", image=" +
secondLoadedProductline.getImage() + "]");

/* 9. Now let's delete the product line from the DB */
EntityManagerHelper.beginTransaction();
dao.delete(secondLoadedProductline);
EntityManagerHelper.commit();

/*
* 10. To confirm the deletion, try and load it again and make sure it
* fails
*/
Productline deletedProductline = dao.findById(productLineID);

/*
* We use a simple inlined IF clause to test for null and print
* SUCCESSFUL/FAILED
*/
System.out.println("Productline deletion: "
+ (deletedProductline ==
null ? "SUCCESSFUL" : "FAILED"));
}}}
上面的代码看起来很复杂,但它做了很多简单的事情。例如,如果您只对在数据库中存储新项目感兴趣,则只需要程序中第1-3步中的代码,这相当于(减去注释)三行代码。以下是每个编号部分的细分:
PRODUCTLINE表使用产品线的名称作为主键。为了使本教程更容易理解,我们在字符串中定义了产品线名称,并在代码中多次运用(创建和存储产品线,然后检索两次)。
这将创建由MyEclipse生成的Productline POJO的新实例,并将其插入数据库中。对于本教程而言,这些值并不重要,所以我们只使用示例信息。
这将创建要使用的DAO实例。数据库访问需要DAO(这也是由MyEclipse生成的)。
这让DAO将新的产品系列存储在数据库中。因为要向数据库中写入一些内容,所以将save调用包含在事务中。

**[下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)**

为了确保使用第1步中定义的ID正确存储了产品系列,我们要求DAO获取产品系列,并将结果分配给一个全新的对象,以完全确保从数据库中加载了什么。(我们可以将值分配回newProductline,但是出于本教程的目的,我们必须清楚地知道对象来源,并且加载的实例之前在代码中不存在)。
这将从已加载的实体中打印出值,以确保它只是存储在数据库中的值。
这将更改刚刚加载的POJO的值,以显示更新记录的工作方式。然后,使用DAO将更改提交回数据库。同样的,此操作被包含在事务中,以确保安全地更改数据库。
与步骤5一样,使用在步骤1中定义的ID从数据库中重新加载记录,以确保更新操作有效。然后打印出POJO值,以确保新描述已保存到数据库中。
这显示了如何从数据库删除记录。同样的,由于这需要更改数据库,因此该代码被包含在事务中。
与第8步和第5步类似,为了证明删除有效,我们尝试使用给定的ID从数据库加载实体。因为我们已经删除了Productline,所以这个操作应该是失败的。从DAO获得结果后,将使用嵌入式IF子句打印一条语句,以确保结果为null。
**二、运行应用程序**
1、右键单击项目,然后选择Run As > Java Application。
2、选择RunJPA应用程序,然后单击“确定”。
![请输入图片名称](https://www.evget.com/Content/ ... 70.png)
输出显示在Console视图中。
![请输入图片名称](https://www.evget.com/Content/ ... 30.jpg)
红色文本是来自MyEclipse中生成的DAO和EntityHelper类的默认日志消息。黑色文本是代码中用于跟踪进度的System.out.println文本。如您所见,第6步中的第一个打印输出和第8步中的更新打印输出都按预期工作。并且查询没有返回Productline,证明删除也很成功。

**资源**
[Oracle JPA注释参考](https://www.oracle.com/technet ... 1.html)
[BEA JPQL参考](https://www.evget.com/resource ... -17577) 查看全部
**建立一个项目**
一般情况,JPA Facet将被添加到Java或Web项目中。在本教程中,您将使用一个简单的Java项目来查看JPA的工作方式。
注意:您可以[下载本教程中开发的项目](https://www.evget.com/resource/detail-demo-14494),然后导入到您的工作区中。
1、单击下拉箭头![请输入图片名称](https://www.evget.com/Content/ ... 53.png),然后选择Java Project。
2、在“Project Name”字段中输入SampleJPAProject,选择默认选项,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 58.gif)
3、单击![请输入图片名称](https://www.evget.com/Content/ ... 46.png),选择MyEclipse Database Explorer打开透视图。
4、在数据库浏览器中,选择MyEclipse Derby连接,然后单击。
![请输入图片名称](https://www.evget.com/Content/ ... 54.gif)
**注意:**在建立数据库连接之前,无法添加JPA Facet,因为需要选择要使用的连接。
5、切换回MyEclipse Java Enterprise透视图,右键单击项目,然后选择**[MyEclipse](https://www.myeclipsecn.com/)** > Project Facets > Install JPA Facet。
6、在目标运行时下拉列表中选择MyEclipse通用Java运行时,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 51.png)
7、从平台下拉列表中选择一个平台,如果JPA实现类型默认为用户库,则选择与所选平台相对应的库。如果未列出任何库,可单击![请输入图片名称](https://www.evget.com/Content/ ... 10.png)下载适当的库。
![请输入图片名称](https://www.evget.com/Content/ ... 16.png)
8、在“Connection”字段中选择MyEclipse Derby,选中“Add driver library to build path”和“Override default schema”复选框,然后从“Schema”下拉列表中选择CLASSICCARS。单击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 24.gif)
现在,项目中已添加了完全配置的JPA Facet,其中包括JPA配置信息/DB连接信息以及添加到项目构建路径中的所有必需的JDBC和JPA库。如果这是一个Web项目,在将项目部署到应用程序服务器上并在其中运行时,所有构建路径的附加内容都将准备好进行部署。
![请输入图片名称](https://www.evget.com/Content/ ... 70.gif)

**[下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)**

**创建一个Java包**

在下一个步骤中,对数据库表中的数据进行反向工程,并为项目生成实体。在进行逆向工程之前,需要创建一个Java包,并在其中放置这些实体。
1、展开项目,右键单击src文件夹,然后选择New > Package。
![请输入图片名称](https://www.evget.com/Content/ ... 07.gif)
2、在“Name”字段中输入com.myeclipseide.jpa,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 64.gif)

**逆向工程数据库表**

现在已经建立了项目,可以将PRODUCTLINE表反向工程到项目中,并开始使用所生成的实体。
1、右键单击该项目,然后选择JPA Tools > Generate Entities & DAOs。
**注意:**您可以选择使用MyEclipse逆向工程工具或DALI实体生成器。选择,单击“确定”,然后完成向导。本教程使用MyEclipse逆向工程工具。
![请输入图片名称](https://www.evget.com/Content/ ... 96.png)
2、选择PRODUCTLINE表,单击添加,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 42.gif)
在“Java Package”字段中,单击“ Browse”,然后选择先前创建的com.myeclipseide.jpa程序包。选中以下复选框:
- Entity Bean Generation:让MyEclipse生成注释为用作JPA实体的普通Java类。
- Create abstract class;如果您希望自定义生成的类,而不必每次都覆盖更改,则MyEclipse可以生成基本抽象类以及您可以自定义和使用的具体子类。每次进行反向工程时,MyEclipse只会覆盖抽象基类,并在具体子类中保留更改。
- Update persistence.xml:与Hibernate类似,您可以在JPA配置文件中列出正在使用的所有JPA实体。
- Java Data Access Generation:让MyEclipse生成DAO实用程序类,让您可以立即从数据库中保存/查找/更新/删除实体。此代码包含了JPA实体管理器,使得使用实体和数据库变得非常容易。
- Generate Precise findBy Methods:让MyEclipse生成findByXXX方法,其中XXX与反转的实体上的每个属性有关。这样一来,可以使用任何属性作为查找实体的方法,轻松地从数据库访问实体。
- Generate Java Interfaces:选择此选项将创建带有相应DAO实现类的接口类。取消选择此选项仅生成DAO实现类,而没有用于定义接口的单独类。
![请输入图片名称](https://www.evget.com/Content/ ... 15.gif)
3、单击完成。查看通过展开com.myeclipseide.jpa包生成的MyEclipse资源。
![请输入图片名称](https://www.evget.com/Content/ ... 44.gif)
生成的实体描述如下:
- EntityManagerHelper:使用直接JPA时,开发人员需要使用EntityManager class。EntityManager通过提供用于访问管理器的静态方法以及易于调用的最常用操作,此生成的帮助程序类让使用EntityManager的过程变得更加容易。
- IProductline:定义相应DAO实现类的接口的类。
- Productline:此类是表示数据库表PRODUCTLINE的JPA实体(POJO)。该POJO包含PRODUCTLINE表的字段,并表示数据库中的一行。
- ProductlineDAO:此类包含EntityManagerHelper以便为我们提供易于使用的方法,专门用于在数据库中添加/查找/更新和删除产品。
注意:逆向工程完成后,您可以打开“Persistence”透视图,使用某些持久性和数据源工具来分析数据库和项目中的数据。

**编写应用程序**

由于MyEclipse生成了许多代码,所以您可以快速将精力放在“Business Logic”上,或更具体地说是“实际完成工作的代码”。在本部分中,您将编写一个具有main方法的Java类,该方法将Productline插入数据库,对其进行检索、更新并删除。使用此代码,您会发现在应用程序中使用JPA实体是多么容易!
**一、创建一个类**
1、右键单击com.myeclipseide.jpa软件包,然后选择New Class。
2、在“Name”字段中键入RunJPA,选中Public static void main复选框,然后单击“Finish”。
![请输入图片名称](https://www.evget.com/Content/ ... 76.gif)
在构建新类和main方法之后,需要编写代码来操作Productline实例。
**注意:**以下代码看起来很长而且很复杂,这是因为我们试图在一个代码块中显示四个不同的示例。如果您查看每个操作(保存、加载、更新、删除),就会发现它们都不由几行代码组成。
3、将以下代码添加到main方法中,然后按CTRL + S保存。

{{{
/* 1. Create a reference to our ID */
String productLineID = "Men's Shoes";

/* 2. Create a new Productline instance */
Productline newProductline = new Productline(
productLineID,
"Shoes for men.", "Men's Shoes", null);

/* 3. Create a DAO instance to use */
ProductlineDAO dao = new ProductlineDAO();

/* 4. Store our new product line in the DB */
EntityManagerHelper.beginTransaction();
dao.save(newProductline);
EntityManagerHelper.commit();

/* 5. Now retrieve the new product line,
using the ID we created */
Productline loadedProductline = dao.findById(productLineID);

/* 6. Print out the product line information */
System.out.println("*NEW* Product Line
[productLine="
+
loadedProductline.getProductline() + ",
textDescription="
+
loadedProductline.getTextdescription() + ", image="
+
loadedProductline.getImage() + "]");

/*
* 7. Now let's change same value on the product line, and save the
* change
*/
loadedProductline.setTextdescription("Product line for men's shoes.");
EntityManagerHelper.beginTransaction();
dao.save(loadedProductline);
EntityManagerHelper.commit();

/*
* 8. Now let's load the product line from the DB again, and make sure
* it text description changed
*/
Productline secondLoadedProductline =
dao.findById(productLineID);
System.out.println("*REVISED* Product Line ["
+ "productLine=" +
secondLoadedProductline.getProductline()
+ ", textDescription=" +
secondLoadedProductline.getTextdescription()
+ ", image=" +
secondLoadedProductline.getImage() + "]");

/* 9. Now let's delete the product line from the DB */
EntityManagerHelper.beginTransaction();
dao.delete(secondLoadedProductline);
EntityManagerHelper.commit();

/*
* 10. To confirm the deletion, try and load it again and make sure it
* fails
*/
Productline deletedProductline = dao.findById(productLineID);

/*
* We use a simple inlined IF clause to test for null and print
* SUCCESSFUL/FAILED
*/
System.out.println("Productline deletion: "
+ (deletedProductline ==
null ? "SUCCESSFUL" : "FAILED"));
}}}
上面的代码看起来很复杂,但它做了很多简单的事情。例如,如果您只对在数据库中存储新项目感兴趣,则只需要程序中第1-3步中的代码,这相当于(减去注释)三行代码。以下是每个编号部分的细分:
PRODUCTLINE表使用产品线的名称作为主键。为了使本教程更容易理解,我们在字符串中定义了产品线名称,并在代码中多次运用(创建和存储产品线,然后检索两次)。
这将创建由MyEclipse生成的Productline POJO的新实例,并将其插入数据库中。对于本教程而言,这些值并不重要,所以我们只使用示例信息。
这将创建要使用的DAO实例。数据库访问需要DAO(这也是由MyEclipse生成的)。
这让DAO将新的产品系列存储在数据库中。因为要向数据库中写入一些内容,所以将save调用包含在事务中。

**[下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)**

为了确保使用第1步中定义的ID正确存储了产品系列,我们要求DAO获取产品系列,并将结果分配给一个全新的对象,以完全确保从数据库中加载了什么。(我们可以将值分配回newProductline,但是出于本教程的目的,我们必须清楚地知道对象来源,并且加载的实例之前在代码中不存在)。
这将从已加载的实体中打印出值,以确保它只是存储在数据库中的值。
这将更改刚刚加载的POJO的值,以显示更新记录的工作方式。然后,使用DAO将更改提交回数据库。同样的,此操作被包含在事务中,以确保安全地更改数据库。
与步骤5一样,使用在步骤1中定义的ID从数据库中重新加载记录,以确保更新操作有效。然后打印出POJO值,以确保新描述已保存到数据库中。
这显示了如何从数据库删除记录。同样的,由于这需要更改数据库,因此该代码被包含在事务中。
与第8步和第5步类似,为了证明删除有效,我们尝试使用给定的ID从数据库加载实体。因为我们已经删除了Productline,所以这个操作应该是失败的。从DAO获得结果后,将使用嵌入式IF子句打印一条语句,以确保结果为null。
**二、运行应用程序**
1、右键单击项目,然后选择Run As > Java Application。
2、选择RunJPA应用程序,然后单击“确定”。
![请输入图片名称](https://www.evget.com/Content/ ... 70.png)
输出显示在Console视图中。
![请输入图片名称](https://www.evget.com/Content/ ... 30.jpg)
红色文本是来自MyEclipse中生成的DAO和EntityHelper类的默认日志消息。黑色文本是代码中用于跟踪进度的System.out.println文本。如您所见,第6步中的第一个打印输出和第8步中的更新打印输出都按预期工作。并且查询没有返回Productline,证明删除也很成功。

**资源**
[Oracle JPA注释参考](https://www.oracle.com/technet ... 1.html)
[BEA JPQL参考](https://www.evget.com/resource ... -17577)

myeclipse和processing能配合使用吗?

移动开发相关zhaojian1057 回复了问题 • 3 人关注 • 3 个回复 • 32 次浏览 • 2019-11-25 10:20 • 来自相关话题

请问MyEclipse CI 2019.4.0适合win7还是win10? 适合32位还是64位电脑?

回复

下载|安装|配置|更新absc744754675 发起了问题 • 1 人关注 • 0 个回复 • 44 次浏览 • 2019-11-22 18:56 • 来自相关话题

Java全栈开发工程师力荐工具MyEclipse&CodeMix年终让利|限时折上折

MyEclipse IDE公告momo77 发表了文章 • 0 个评论 • 19 次浏览 • 2019-11-20 10:11 • 来自相关话题

作为Java开发人员,你是否找到了喜欢的开发工具?
本文介绍的这两款市面最流行、价格最实惠、功能最强大的Java开发神器,一定能让你用一次就爱不释手!

**[MyEclipse——企业级Java EE开发工具](https://www.myeclipsecn.com/)**

提起MyEclipse,从事Java工作或学习的朋友们应该很熟悉,它是Eclispse的进一步扩展,是企业级Java EE开发工具。它包括了完备的编码、调试、测试和发布功能,同时也支持Java Servlet、AJAX、JSP、JSF、Struts、SpringHibernate、EJB3、JDBC数据库链接工具等多项功能,主要用于Java、Java EE及Web开发。
由此可见,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
![请输入图片名称](https://www.evget.com/Content/ ... 61.png)

**[免费试用30天](https://www.myeclipsecn.com/download/)** **[优惠购买正版授权](https://www.evget.com/mall/detail/3016)**

其实网络上对于Java的编译器有着非常大的争端。有的人说IDEA好,也有说MyEclipse强大的。但是在小编看来,工具嘛,个人使用顺手就好啦,没必要硬扯出个输赢。
经常与MyEclipse一起出现的还有CodeMix。

**[CodeMix——代码自动补全插件](https://www.myeclipsecn.com/codemix/)**

CodeMix是Eclipse IDE代码自动补全插件,具有智能代码完成、键盘电源与命令、调试等功能,可以执行从打开文件到运行构建的所有操作,根据语言语义和代码分析,在你输入代码的时候显示内容辅助建议、进行代码自动补全,还能添加断点、找出代码中的错误。由此可见,可能使用CodeMix的人永远都不能理解加班狗的痛苦。
最让Java开发人员喜欢的是,CodeMix与基于Eclipse的IDE和工具兼容(比如MyEclipse),即使是初次使用CodeMixd的人也能在熟悉的环境中快速工作。
重点是,CodeMix解锁了VS Code和Code OSS附加扩展的各种技术。所以,如果你羡慕VS Code的超快速度,一定要带走CodeMix,因为它能增强你的工作流程和开发速度!

**[优惠购买正版授权](https://www.evget.com/mall/detail/4078)**

或许你现在已经心动了,又或许你早就盯上了上述两款工具,但还在观摩等待更实惠的价格。慧都网不仅知你所需,还要给你想要:
[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)
注意,慧都商城中MyEclipse的商业授权包括标准版、专业版、Spring版、Blue版和Bling版:
- 标准版可以满足Jave EE入门开发的需求;
- 专业版除可以满足Jave EE入门开发的需求外,还拥有能应付所有应用程序开发的灵活工具集;
- 而Blue版和Spring版则是在专业版基础上分别增加了完整支持WebSphere和Spring开发的工具集;
- Bling版是Blue版和Spring版的并集。
所以,在购买时一定要根据自己的实际需求选购合适的版本哦!(土豪除外~)
提示:对于Jave EE入门开发的工具集来说,五个版本的MyEclipse都可以满足需求;如果你需要支持WebSphere的完整工具集,可以选择Blue版或Bling版。若您有其他疑问,欢迎**[【联系客服】](https://chat8.live800.com/live ... Bs%3D1)**了解~

**[MyEclipse&CodeMix资源集锦](https://www.evget.com/topic/22)**
视频资源、移动开发/Web开发/数据库教程、各版本更新要点,应有尽有。 查看全部
作为Java开发人员,你是否找到了喜欢的开发工具?
本文介绍的这两款市面最流行、价格最实惠、功能最强大的Java开发神器,一定能让你用一次就爱不释手!

**[MyEclipse——企业级Java EE开发工具](https://www.myeclipsecn.com/)**

提起MyEclipse,从事Java工作或学习的朋友们应该很熟悉,它是Eclispse的进一步扩展,是企业级Java EE开发工具。它包括了完备的编码、调试、测试和发布功能,同时也支持Java Servlet、AJAX、JSP、JSF、Struts、SpringHibernate、EJB3、JDBC数据库链接工具等多项功能,主要用于Java、Java EE及Web开发。
由此可见,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
![请输入图片名称](https://www.evget.com/Content/ ... 61.png)

**[免费试用30天](https://www.myeclipsecn.com/download/)** **[优惠购买正版授权](https://www.evget.com/mall/detail/3016)**

其实网络上对于Java的编译器有着非常大的争端。有的人说IDEA好,也有说MyEclipse强大的。但是在小编看来,工具嘛,个人使用顺手就好啦,没必要硬扯出个输赢。
经常与MyEclipse一起出现的还有CodeMix。

**[CodeMix——代码自动补全插件](https://www.myeclipsecn.com/codemix/)**

CodeMix是Eclipse IDE代码自动补全插件,具有智能代码完成、键盘电源与命令、调试等功能,可以执行从打开文件到运行构建的所有操作,根据语言语义和代码分析,在你输入代码的时候显示内容辅助建议、进行代码自动补全,还能添加断点、找出代码中的错误。由此可见,可能使用CodeMix的人永远都不能理解加班狗的痛苦。
最让Java开发人员喜欢的是,CodeMix与基于Eclipse的IDE和工具兼容(比如MyEclipse),即使是初次使用CodeMixd的人也能在熟悉的环境中快速工作。
重点是,CodeMix解锁了VS Code和Code OSS附加扩展的各种技术。所以,如果你羡慕VS Code的超快速度,一定要带走CodeMix,因为它能增强你的工作流程和开发速度!

**[优惠购买正版授权](https://www.evget.com/mall/detail/4078)**

或许你现在已经心动了,又或许你早就盯上了上述两款工具,但还在观摩等待更实惠的价格。慧都网不仅知你所需,还要给你想要:
[即日起至11月30日,慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购MyEclipse、CodeMix享折上(MyEclipse最高省48元,CodeMix最高省36元)!](https://www.evget.com/game/index/techsrv)
注意,慧都商城中MyEclipse的商业授权包括标准版、专业版、Spring版、Blue版和Bling版:
- 标准版可以满足Jave EE入门开发的需求;
- 专业版除可以满足Jave EE入门开发的需求外,还拥有能应付所有应用程序开发的灵活工具集;
- 而Blue版和Spring版则是在专业版基础上分别增加了完整支持WebSphere和Spring开发的工具集;
- Bling版是Blue版和Spring版的并集。
所以,在购买时一定要根据自己的实际需求选购合适的版本哦!(土豪除外~)
提示:对于Jave EE入门开发的工具集来说,五个版本的MyEclipse都可以满足需求;如果你需要支持WebSphere的完整工具集,可以选择Blue版或Bling版。若您有其他疑问,欢迎**[【联系客服】](https://chat8.live800.com/live ... Bs%3D1)**了解~

**[MyEclipse&CodeMix资源集锦](https://www.evget.com/topic/22)**
视频资源、移动开发/Web开发/数据库教程、各版本更新要点,应有尽有。

MyEclipse数据库教程:JPA开发

Java EE开发momo77 发表了文章 • 0 个评论 • 36 次浏览 • 2019-11-15 11:54 • 来自相关话题

**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/game/index/techsrv)**

**1、配置JPA项目**
JPA是类似于Hibernate的持久性规范,已成为Java EE 5规范的一部分。JPA使用Java 5注释来控制将普通Java类(POJO)映射到数据库表。
您可以通过创建任意受支持的基础项目类型(例如Java或Web项目)来创建启用JPA的项目,然后从MyEclipse菜单中将JPA构面添加到该项目中。右键单击该项目即可添加JPA构面,然后从菜单中选择MyEclipse > Project Facets > Install JPA Facet。同时,还可以通过打开项目的“Project Facets”属性,同时向项目添加多个构面。
![请输入图片名称](https://www.evget.com/Content/ ... 99.png)
**提供持久性**
MyEclipse为OpenJPA、Hibernate和EclipseLink JPA提供程序提供支持。
![请输入图片名称](https://www.evget.com/Content/ ... 35.gif)
**数据库配置**
将项目与数据库和架构相关联,为设计时工具提供支持。如下图所示,项目与本地MyEclipse Derby数据库的数据库驱动程序关联。
![请输入图片名称](https://www.evget.com/Content/ ... 65.gif)
除了可以依赖MyEclipse附带的库,还可以单击下载图标添加要包含在项目中的用户库。
![请输入图片名称](https://www.evget.com/Content/ ... 86.png)
同时,您还可以右键单击该项目从菜单中选择“Properties”,展开MyEclipse > Project Facets,然后选择Java Persistence,打开Java Persistence properties页面随时更改JPA项目的数据库驱动程序关联。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
**2、从数据库反向工程实体和DAO**
右键单击一个JPA项目,然后从菜单中选择“Generate Entities & DAOs”。您可以选择使用MyEclipse逆向工程工具或DALI实体生成器进行选择,将启动相应的JPA逆向工程向导。
![请输入图片名称](https://www.evget.com/Content/ ... 27.gif)
右键单击DB Browser视图中的表生成实体。
![请输入图片名称](https://www.evget.com/Content/ ... 73.gif)
逆向工程过程是完全可定制的。使用JPA逆向工程向导,可以选择要生成的工件以及该工件所基于的数据库表。
![请输入图片名称](https://www.evget.com/Content/ ... 38.gif)
MyEclipse还可以生成具有结果分页支持的DAO findBy<property>查询。生成的结果分页API为DAO客户端提供了细粒度的程序控制,可定位到结果集的特定行号并获取n个实体。
以下是逆向工程处理器生成的代码的几个样本片段:
![请输入图片名称](https://www.evget.com/Content/ ... 39.gif)
**3、高级实体编辑工具**
**MyEclipse Java持久性透视图**
MyEclipse Java Persistence透视图为面向jpa的任务提供了最佳的编辑器和视图布局。
![jpa-persistence-perspective-clipped.jpg](https://www.evget.com/Content/ ... 24.jpg)
**JPA Details视图**
通过“JPA Details”视图,可以轻松编辑实体注释。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
**JPA Diagram编辑器**
JPA Diagram编辑器使您可以轻松创建新实体或在现有JPA项目中编辑实体。
![请输入图片名称](https://www.evget.com/Content/ ... 73.png)
**JPA Annotation Table和Column Content Assist**
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
**JPA Entity Validation**
可检测到映射中的错误并在编辑器和“Problems”视图中显示。
![请输入图片名称](https://www.evget.com/Content/ ... 88.gif)
可以在项目级别启用或禁用JPA Entity Validator。
![请输入图片名称](https://www.evget.com/Content/ ... 46.gif)
**4、高级Spring-JPA集成**
**Spring 2支持**
将JPA构面添加到已经具有Spring构面的项目时,您可以选择高级Spring-JPA支持(反之亦然)。这种级别的支持使JPA工具可以与项目的Spring工件一起使用。下图显示了Spring-JPA项目配置向导。
![jpa-spring-addcaps.jpg](https://www.evget.com/Content/ ... 05.jpg)
选择Spring-JPA支持,主要bean配置文件,并自定义bean id和事务支持。
![请输入图片名称](https://www.evget.com/Content/ ... 73.gif)
**逆向工程实体和数据库中的Spring DAO**
对于配置为支持高级Spring-JPA功能的项目,除了从数据库架构生成实体类之外,还可以生成与Spring兼容的DAO。在逆向工程过程中,将使用每个DOA类的生成的bean条目更新Spring应用程序上下文文件。
生成Spring DAO:
![请输入图片名称](https://www.evget.com/Content/ ... 06.gif)
生成的Spring应用程序上下文文件:
![请输入图片名称](https://www.evget.com/Content/ ... 88.gif)
生成的Spring DAO扩展自Spring的JpaDaoSupport:
![请输入图片名称](https://resources.cloud.genuit ... ao.gif) 查看全部
**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/game/index/techsrv)**

**1、配置JPA项目**
JPA是类似于Hibernate的持久性规范,已成为Java EE 5规范的一部分。JPA使用Java 5注释来控制将普通Java类(POJO)映射到数据库表。
您可以通过创建任意受支持的基础项目类型(例如Java或Web项目)来创建启用JPA的项目,然后从MyEclipse菜单中将JPA构面添加到该项目中。右键单击该项目即可添加JPA构面,然后从菜单中选择MyEclipse > Project Facets > Install JPA Facet。同时,还可以通过打开项目的“Project Facets”属性,同时向项目添加多个构面。
![请输入图片名称](https://www.evget.com/Content/ ... 99.png)
**提供持久性**
MyEclipse为OpenJPA、Hibernate和EclipseLink JPA提供程序提供支持。
![请输入图片名称](https://www.evget.com/Content/ ... 35.gif)
**数据库配置**
将项目与数据库和架构相关联,为设计时工具提供支持。如下图所示,项目与本地MyEclipse Derby数据库的数据库驱动程序关联。
![请输入图片名称](https://www.evget.com/Content/ ... 65.gif)
除了可以依赖MyEclipse附带的库,还可以单击下载图标添加要包含在项目中的用户库。
![请输入图片名称](https://www.evget.com/Content/ ... 86.png)
同时,您还可以右键单击该项目从菜单中选择“Properties”,展开MyEclipse > Project Facets,然后选择Java Persistence,打开Java Persistence properties页面随时更改JPA项目的数据库驱动程序关联。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
**2、从数据库反向工程实体和DAO**
右键单击一个JPA项目,然后从菜单中选择“Generate Entities & DAOs”。您可以选择使用MyEclipse逆向工程工具或DALI实体生成器进行选择,将启动相应的JPA逆向工程向导。
![请输入图片名称](https://www.evget.com/Content/ ... 27.gif)
右键单击DB Browser视图中的表生成实体。
![请输入图片名称](https://www.evget.com/Content/ ... 73.gif)
逆向工程过程是完全可定制的。使用JPA逆向工程向导,可以选择要生成的工件以及该工件所基于的数据库表。
![请输入图片名称](https://www.evget.com/Content/ ... 38.gif)
MyEclipse还可以生成具有结果分页支持的DAO findBy<property>查询。生成的结果分页API为DAO客户端提供了细粒度的程序控制,可定位到结果集的特定行号并获取n个实体。
以下是逆向工程处理器生成的代码的几个样本片段:
![请输入图片名称](https://www.evget.com/Content/ ... 39.gif)
**3、高级实体编辑工具**
**MyEclipse Java持久性透视图**
MyEclipse Java Persistence透视图为面向jpa的任务提供了最佳的编辑器和视图布局。
![jpa-persistence-perspective-clipped.jpg](https://www.evget.com/Content/ ... 24.jpg)
**JPA Details视图**
通过“JPA Details”视图,可以轻松编辑实体注释。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
**JPA Diagram编辑器**
JPA Diagram编辑器使您可以轻松创建新实体或在现有JPA项目中编辑实体。
![请输入图片名称](https://www.evget.com/Content/ ... 73.png)
**JPA Annotation Table和Column Content Assist**
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
**JPA Entity Validation**
可检测到映射中的错误并在编辑器和“Problems”视图中显示。
![请输入图片名称](https://www.evget.com/Content/ ... 88.gif)
可以在项目级别启用或禁用JPA Entity Validator。
![请输入图片名称](https://www.evget.com/Content/ ... 46.gif)
**4、高级Spring-JPA集成**
**Spring 2支持**
将JPA构面添加到已经具有Spring构面的项目时,您可以选择高级Spring-JPA支持(反之亦然)。这种级别的支持使JPA工具可以与项目的Spring工件一起使用。下图显示了Spring-JPA项目配置向导。
![jpa-spring-addcaps.jpg](https://www.evget.com/Content/ ... 05.jpg)
选择Spring-JPA支持,主要bean配置文件,并自定义bean id和事务支持。
![请输入图片名称](https://www.evget.com/Content/ ... 73.gif)
**逆向工程实体和数据库中的Spring DAO**
对于配置为支持高级Spring-JPA功能的项目,除了从数据库架构生成实体类之外,还可以生成与Spring兼容的DAO。在逆向工程过程中,将使用每个DOA类的生成的bean条目更新Spring应用程序上下文文件。
生成Spring DAO:
![请输入图片名称](https://www.evget.com/Content/ ... 06.gif)
生成的Spring应用程序上下文文件:
![请输入图片名称](https://www.evget.com/Content/ ... 88.gif)
生成的Spring DAO扩展自Spring的JpaDaoSupport:
![请输入图片名称](https://resources.cloud.genuit ... ao.gif)

MyEclipse数据库教程:Hibernate开发

Java EE开发momo77 发表了文章 • 0 个评论 • 52 次浏览 • 2019-11-15 11:46 • 来自相关话题

**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/game/index/techsrv)**

**1、什么是Hibernate?**
Hibernate是一种非常流行的、基于Java的开源对象关系映射(JORM)引擎,易于启动和运行,提供了丰富的功能,包括:
- 多种映射策略
- 传递持久性
- 单对象到多表的映射
- 集合支持
- 多态关联
- 可自定义的SQL查询
Hibernate用于在运行时将数据库结构映射到Java对象。使用像Hibernate这样的持久性框架,开发人员可以专注于编写业务逻辑,而不是编写准确、高效的持久性层(包括DAO、SQL查询、JDBC代码、连接管理等)。
任何需要在Java应用程序对象和数据库表之间移动数据的Java应用程序都可以使用Hibernate。因此,它在开发两层和三层Java EE应用程序中非常有用。将Hibernate集成到您的应用程序中涉及:
- 将Hibernate核心和支持JAR库安装到项目中
- 创建一个hibernate.cfg.xml文件来描述如何访问数据库
- 为每个可持久的Java类创建单独的映射描述符文件
**1.1导致Hibernate的历史**
在Java数据库和Web编程的早期,开发人员使用java.sql包提供的不同类访问其数据库,这包括从DriverManager获取驱动程序、创建和使用连接、正确处理异常、关闭连接等。在此阶段,一个常见的问题是忘记清理数据库连接,并在它们运行了一段时间后在应用程序中得到连接异常的反馈。
几年后,连接池成为一个大话题,因为它们让开发人员不用再担心创建和管理(清理)数据库连接,而是把精力集中在他们的SQL和ResultSet解析代码上。突然之间,长时间运行的应用程序中数据库连接异常的问题基本解决了。但是,仍然经常看到数百行样板代码用于用值填充查询并解析SQL查询返回的ResultSet。
又过了几年,有人想到了将ResultSet结果直接自动映射到Java对象的方法,这在很大程度上解决了所有冗余样板解析代码的问题。那时,Java数据库开发已经迈出了几大步,并且变得越来越简单。然后,Hibernate模式为人熟知。
随着Hibernate的出现,不仅这些东西会继续自动化,Hibernate也会管理内存中对象的状态,它会担心何时以及如何从数据库读取或写入对象值。现在,开发人员只处理对象(或映射对象),Hibernate则处理其他所有内容。开发人员不再编写JDBC和SQL代码。相反,他们使用的是为他们工作的代码。
当Hibernate出现时,另一种可用的持久性技术是EJB2.x。Hibernate的时间安排、易用性和强大功能都是Java领域在相当长一段时间内所采用的最快技术之一。
**2、Hibernate项目配置**
您可以通过创建任何受支持类型的基础项目(例如Java或Web项目)添加Hibernate facet,来创建启用了hibernate的项目。MyEclipse为您创建一个hibernate.cfg.xml文件,您必须指定数据库连接详细信息。
您也可以通过打开项目的Project Facets属性,将多个构面同时添加到项目中。
![请输入图片名称](https://www.evget.com/Content/ ... 55.png)
**2.1Hibernate映射和配置**
Hibernate用Java编写,可以通过两种类型的配置文件进行高度配置。第一种配置文件名为hibernate.cfg.xml。启动时,Hibernate会查询此XML文件的操作属性,例如数据库连接字符串和密码、数据库方言以及映射文件的位置。Hibernate在类路径上搜索此文件。
![请输入图片名称](https://www.evget.com/Content/ ... 79.png)
第二种类型的配置文件是映射描述(文件扩展名* .hbm),它指示Hibernate如何在特定的Java类和一个或多个数据库表之间映射数据。MyEclipse提供了用于处理所有这些配置文件类型的工具,并在您更改数据库和Hibernate映射的Java类时使它们保持同步。编辑器具有以下功能:
- 基于表单的高级编辑器和随附的向导
- 超链接导航到引用的类和属性
- 类名自动完成
- 属性名称自动完成
- 内容有助于映射文件元素、属性和值
![请输入图片名称](https://www.evget.com/Content/ ... 23.png)
![请输入图片名称](https://www.evget.com/Content/ ... 78.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 76.gif)
**3、逆向工程数据库表**
您可以将数据库表信息反向工程为Hibernate(Java)对象,然后将它们添加到项目中。为了最大程度地控制生成的Hibernate对象,可以在向导中选择详细信息,例如主键生成策略、对象名称、类型等。
在Database Explorer透视图中,可以查看所连接的数据库的内容。在DB浏览器中,右键单击要反向工程的表,然后从菜单中选择Hibernate Reverse Engineering。完成向导后,系统将提示您切换到Hibernate透视图。
![请输入图片名称](https://www.evget.com/Content/ ... 07.png)
这些类将生成到在向导中选择的Java包中。
![请输入图片名称](https://www.evget.com/Content/ ... 46.png)
对数据库表进行反向工程时,实体将显示在配置文件的Mappings部分中。
**4. HQL Editor**
HQL Editor以及Hibernate透视图中的其他HQL视图可帮助开发、评估或测试HQL查询。HQL是一种类似于SQL的语言,称为Hibernate查询语言。它有时看起来像是简化的SQL,使用对象名和引用而不是表名和列名。该编辑器具有以下功能:
- 内容辅助
- 输入时,Hibernate动态查询转换器视图将HQL查询转换为SQL。
- Hibernate Query Results视图可以包含多个结果集。结果属性显示在Properties视图中。
- 查询参数视图可轻松执行变量查询。
- 项目选择器,可以在不同的Hibernate项目之间切换上下文。
使用HQL Editor,可以即时编写并运行HQL。编辑器利用MyEclipse从数据库进行反向工程的对象,将查询转换为SQL(如右下所示),然后运行它。结果在Java对象中返回,并显示在左下角。
![请输入图片名称](https://www.evget.com/Content/ ... 90.png)
对数据库进行反向工程之后,就可以开始编写应用程序以读取、写入和更新数据库中的对象。放置好Java类和方法后,可以在HQL Editor中运行Hibernate查询来查询数据库,这是查询数据库的另一种方法。您还可以切换到Database Explorer透视图并从那里查询数据库以查看相同的结果。
**5、Criteria Editor**
除了HQL编辑器之外,MyEclipse Hibernate工具还包括一个Criteria编辑器。Hibernate中的Criteria是一种利用对象实例结合查询约束来针对实体创建查询的方法。例如,假设创建一个类型为User的实体实例,将实体指定为查询的条件,并告诉条件只返回前10个结果,这是创建用于实体的复杂查询的有效且快速的方法。
要访问Criteria Editor,请右键单击包含Hibernate facet的项目,然后选择MyEclipse > Open Criteria Editor。
![请输入图片名称](https://www.evget.com/Content/ ... 90.gif)
打开Criteria Editor后,可以在编辑器中输入任何表示条件的有效Java代码,并使用编辑器顶部的“Run”图标执行它们。
下面的示例显示了一个基于EchoMessage实体的简单条件,要求Hibernate返回其EchoMessageId值为2的实体。结果出现在Result视图中。
![请输入图片名称](https://www.evget.com/Content/ ... 92.png)
可以使用MyEclipse中的Criteria Editor来编写和执行任何有效的基于条件的代码。在Java编辑器中输入条件时,选择它并调用快速修复将显示“Copy to Criteria”编辑器操作。选择此操作将打开“Criteria”编辑器,并使用所选文本进行初始化。
![请输入图片名称](https://www.evget.com/Content/ ... 58.gif)
您可以在Criteria Editor中测试和编辑条件。完成后,关闭编辑器可用修改后的条件查询替换最开始选择的文本。
**6、常见问题**
**Q:**Hibernate与EJB 3/JPA相比如何?
**A:**Hibernate 3.2实际上是与JPA兼容的,它实现了所有新的注释,这些注释让JPA使用起来非常自动化且更简单。因此,除了使用JPA的commercial implementation外,还可以使用Hibernate,所有标准JPA批注仍将保留在类中,而无需进行任何更改。
**Q:**Hibernate可以扩展到非常大的应用程序吗?
**A:**可以。实际上,Hibernate的根源来自于两位创始人在大型企业应用程序中担任顾问的经验,Hibernate是他们对持久性在应用程序中应如何起作用的看法。
几年前,Gavin King向社区提出了一项挑战,要求找到手工调整的JDBC SQL。该SQL执行的幅度要比Hibernate生成的SQL快,由此也能看出该框架非常注重功能、灵活性和性能。 查看全部
**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/game/index/techsrv)**

**1、什么是Hibernate?**
Hibernate是一种非常流行的、基于Java的开源对象关系映射(JORM)引擎,易于启动和运行,提供了丰富的功能,包括:
- 多种映射策略
- 传递持久性
- 单对象到多表的映射
- 集合支持
- 多态关联
- 可自定义的SQL查询
Hibernate用于在运行时将数据库结构映射到Java对象。使用像Hibernate这样的持久性框架,开发人员可以专注于编写业务逻辑,而不是编写准确、高效的持久性层(包括DAO、SQL查询、JDBC代码、连接管理等)。
任何需要在Java应用程序对象和数据库表之间移动数据的Java应用程序都可以使用Hibernate。因此,它在开发两层和三层Java EE应用程序中非常有用。将Hibernate集成到您的应用程序中涉及:
- 将Hibernate核心和支持JAR库安装到项目中
- 创建一个hibernate.cfg.xml文件来描述如何访问数据库
- 为每个可持久的Java类创建单独的映射描述符文件
**1.1导致Hibernate的历史**
在Java数据库和Web编程的早期,开发人员使用java.sql包提供的不同类访问其数据库,这包括从DriverManager获取驱动程序、创建和使用连接、正确处理异常、关闭连接等。在此阶段,一个常见的问题是忘记清理数据库连接,并在它们运行了一段时间后在应用程序中得到连接异常的反馈。
几年后,连接池成为一个大话题,因为它们让开发人员不用再担心创建和管理(清理)数据库连接,而是把精力集中在他们的SQL和ResultSet解析代码上。突然之间,长时间运行的应用程序中数据库连接异常的问题基本解决了。但是,仍然经常看到数百行样板代码用于用值填充查询并解析SQL查询返回的ResultSet。
又过了几年,有人想到了将ResultSet结果直接自动映射到Java对象的方法,这在很大程度上解决了所有冗余样板解析代码的问题。那时,Java数据库开发已经迈出了几大步,并且变得越来越简单。然后,Hibernate模式为人熟知。
随着Hibernate的出现,不仅这些东西会继续自动化,Hibernate也会管理内存中对象的状态,它会担心何时以及如何从数据库读取或写入对象值。现在,开发人员只处理对象(或映射对象),Hibernate则处理其他所有内容。开发人员不再编写JDBC和SQL代码。相反,他们使用的是为他们工作的代码。
当Hibernate出现时,另一种可用的持久性技术是EJB2.x。Hibernate的时间安排、易用性和强大功能都是Java领域在相当长一段时间内所采用的最快技术之一。
**2、Hibernate项目配置**
您可以通过创建任何受支持类型的基础项目(例如Java或Web项目)添加Hibernate facet,来创建启用了hibernate的项目。MyEclipse为您创建一个hibernate.cfg.xml文件,您必须指定数据库连接详细信息。
您也可以通过打开项目的Project Facets属性,将多个构面同时添加到项目中。
![请输入图片名称](https://www.evget.com/Content/ ... 55.png)
**2.1Hibernate映射和配置**
Hibernate用Java编写,可以通过两种类型的配置文件进行高度配置。第一种配置文件名为hibernate.cfg.xml。启动时,Hibernate会查询此XML文件的操作属性,例如数据库连接字符串和密码、数据库方言以及映射文件的位置。Hibernate在类路径上搜索此文件。
![请输入图片名称](https://www.evget.com/Content/ ... 79.png)
第二种类型的配置文件是映射描述(文件扩展名* .hbm),它指示Hibernate如何在特定的Java类和一个或多个数据库表之间映射数据。MyEclipse提供了用于处理所有这些配置文件类型的工具,并在您更改数据库和Hibernate映射的Java类时使它们保持同步。编辑器具有以下功能:
- 基于表单的高级编辑器和随附的向导
- 超链接导航到引用的类和属性
- 类名自动完成
- 属性名称自动完成
- 内容有助于映射文件元素、属性和值
![请输入图片名称](https://www.evget.com/Content/ ... 23.png)
![请输入图片名称](https://www.evget.com/Content/ ... 78.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 76.gif)
**3、逆向工程数据库表**
您可以将数据库表信息反向工程为Hibernate(Java)对象,然后将它们添加到项目中。为了最大程度地控制生成的Hibernate对象,可以在向导中选择详细信息,例如主键生成策略、对象名称、类型等。
在Database Explorer透视图中,可以查看所连接的数据库的内容。在DB浏览器中,右键单击要反向工程的表,然后从菜单中选择Hibernate Reverse Engineering。完成向导后,系统将提示您切换到Hibernate透视图。
![请输入图片名称](https://www.evget.com/Content/ ... 07.png)
这些类将生成到在向导中选择的Java包中。
![请输入图片名称](https://www.evget.com/Content/ ... 46.png)
对数据库表进行反向工程时,实体将显示在配置文件的Mappings部分中。
**4. HQL Editor**
HQL Editor以及Hibernate透视图中的其他HQL视图可帮助开发、评估或测试HQL查询。HQL是一种类似于SQL的语言,称为Hibernate查询语言。它有时看起来像是简化的SQL,使用对象名和引用而不是表名和列名。该编辑器具有以下功能:
- 内容辅助
- 输入时,Hibernate动态查询转换器视图将HQL查询转换为SQL。
- Hibernate Query Results视图可以包含多个结果集。结果属性显示在Properties视图中。
- 查询参数视图可轻松执行变量查询。
- 项目选择器,可以在不同的Hibernate项目之间切换上下文。
使用HQL Editor,可以即时编写并运行HQL。编辑器利用MyEclipse从数据库进行反向工程的对象,将查询转换为SQL(如右下所示),然后运行它。结果在Java对象中返回,并显示在左下角。
![请输入图片名称](https://www.evget.com/Content/ ... 90.png)
对数据库进行反向工程之后,就可以开始编写应用程序以读取、写入和更新数据库中的对象。放置好Java类和方法后,可以在HQL Editor中运行Hibernate查询来查询数据库,这是查询数据库的另一种方法。您还可以切换到Database Explorer透视图并从那里查询数据库以查看相同的结果。
**5、Criteria Editor**
除了HQL编辑器之外,MyEclipse Hibernate工具还包括一个Criteria编辑器。Hibernate中的Criteria是一种利用对象实例结合查询约束来针对实体创建查询的方法。例如,假设创建一个类型为User的实体实例,将实体指定为查询的条件,并告诉条件只返回前10个结果,这是创建用于实体的复杂查询的有效且快速的方法。
要访问Criteria Editor,请右键单击包含Hibernate facet的项目,然后选择MyEclipse > Open Criteria Editor。
![请输入图片名称](https://www.evget.com/Content/ ... 90.gif)
打开Criteria Editor后,可以在编辑器中输入任何表示条件的有效Java代码,并使用编辑器顶部的“Run”图标执行它们。
下面的示例显示了一个基于EchoMessage实体的简单条件,要求Hibernate返回其EchoMessageId值为2的实体。结果出现在Result视图中。
![请输入图片名称](https://www.evget.com/Content/ ... 92.png)
可以使用MyEclipse中的Criteria Editor来编写和执行任何有效的基于条件的代码。在Java编辑器中输入条件时,选择它并调用快速修复将显示“Copy to Criteria”编辑器操作。选择此操作将打开“Criteria”编辑器,并使用所选文本进行初始化。
![请输入图片名称](https://www.evget.com/Content/ ... 58.gif)
您可以在Criteria Editor中测试和编辑条件。完成后,关闭编辑器可用修改后的条件查询替换最开始选择的文本。
**6、常见问题**
**Q:**Hibernate与EJB 3/JPA相比如何?
**A:**Hibernate 3.2实际上是与JPA兼容的,它实现了所有新的注释,这些注释让JPA使用起来非常自动化且更简单。因此,除了使用JPA的commercial implementation外,还可以使用Hibernate,所有标准JPA批注仍将保留在类中,而无需进行任何更改。
**Q:**Hibernate可以扩展到非常大的应用程序吗?
**A:**可以。实际上,Hibernate的根源来自于两位创始人在大型企业应用程序中担任顾问的经验,Hibernate是他们对持久性在应用程序中应如何起作用的看法。
几年前,Gavin King向社区提出了一项挑战,要求找到手工调整的JDBC SQL。该SQL执行的幅度要比Hibernate生成的SQL快,由此也能看出该框架非常注重功能、灵活性和性能。

请问2019版怎么激活啊,搞了半天激活不了

下载|安装|配置|更新momo77 回复了问题 • 2 人关注 • 1 个回复 • 107 次浏览 • 2019-11-14 10:29 • 来自相关话题

MyEclipse数据库教程:使用Hibernate开发Persistence(二)

Java EE开发momo77 发表了文章 • 0 个评论 • 38 次浏览 • 2019-11-11 11:41 • 来自相关话题

在**[上篇](https://www.myeclipsecn.com/bbs/?/article/200)**中,介绍了创建启用了Hibernate的Java项目、自定义Hibernate配置文件、使用逆向工程进行Java表映射等详细操作步骤(点击此处查看更多)。本文承接上篇,继续介绍“使用Hibernate开发Persistence”操作方法的其他内容。
**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**5、使用HQL Editor**
- 通过以下步骤使用ECHO_MESSAGE表(该表是使用本教程开始时提供的SQL命令添加的)。
- 映射到ECHO_MESSAGE表。
- 右键单击HibernateDemo项目,然后选择[MyEclipse](https://www.myeclipsecn.com/)>打开HQL Editor。
**注意:**每次打开扩展名为.hql的文件时,HQL Editor都会打开。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
- 编辑器打开后,输入EchoMessage。
- 单击运行图标或按CTRL + F9执行查询。
![请输入图片名称](https://www.evget.com/Content/ ... 19.png)
- 使用查询参数视图执行变量查询。
![请输入图片名称](https://www.evget.com/Content/ ... 23.png)
**注意:**在为项目初始化HQL Editor后更改配置、映射或数据对象,请使用编辑器工具栏上的“Refresh”按钮以确保编辑器选择了最新的更改。
如果您正在编辑一个NamedQuery注释,可以在查询属性重调用quick fix(通常为CTRL + 1)来复制到HQL Editor。这将打开HQL编辑器,并使用查询字符串对其进行初始化。
![请输入图片名称](https://www.evget.com/Content/ ... 72.gif)
您可以在HQL Editor中测试和编辑查询。完成后,关闭编辑器可让您将修改后的查询复制回Java编辑器中的query属性。
打开项目的HQL Editor后,将为NamedQueries提供内容辅助和验证(CTRL +空格键)。
![请输入图片名称](https://www.evget.com/Content/ ... 78.jpg)
**6、测试HibernateDemo应用程序**
测试Hibernate持久性的一种方法是使用main方法创建Java类。测试类使用Java对象和由Hibernate向导创建的HibernateSessionFactory。查看在HibernateSession类中定义的两个重要方法,如下所示,它们在测试代码中使用。
![请输入图片名称](https://www.evget.com/Content/ ... 70.gif)
显示的是SessionManager类中的两个重要的静态方法。
- getSession():此方法返回一个Session变量,可用于访问Hibernate Session类。每当您要使用Hibernate会话时,都可以调用此方法来获取缓存的Hibernate Session。
- closeSession():如果会话已经启动,则此方法可将其关闭。
以下是测试代码中的步骤列表以及源代码示例:
- 选择File > New > Class。
- 输入包名称。
- 在Name字段中输入HibernateReadTest。
- 如图所示完成页面,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 64.gif)
- 打开HibernateReadTest.java文件,将源代码替换为下面的代码,然后按CTRL + S保存。

{{{
package com.myeclipse.hibernate;

import java.math.BigDecimal;
import org.hibernate.HibernateException;

public class HibernateReadTest {

public static void main(String[] args) {
// Step 1 - Create the DAO
EchoMessageDAO dao = new EchoMessageDAO();
try {
// Step 2 - Use findById to retrieve the message with ID = 1
EchoMessage echoMessage = dao.findById(new BigDecimal(1));
System.out.println("Entity retrieval successful, message is: "
+ echoMessage.getMsg());
} catch (HibernateException e){
System.err.println("Entity retrieval failed.");
e.printStackTrace();
} finally {
try {
dao.getSession().close();
} catch (Exception e) {
// do nothing
}
}
}
}
}}}
- 在资源管理器中右键单击HibernateReadTest.java文件,然后选择 Run > Run As > Java Application。将打开“Console”视图,如果测试成功,您将看到如下图所示的输出。
**注意:**如果看到log4j警告,可以忽略。
![请输入图片名称](https://www.evget.com/Content/ ... 01.gif)
**7、导入示例HibernateDemo项目**
- [下载HibernateDemo.zip。](https://www.evget.com/resource/detail-demo-14454)
- 从菜单中选择Import > Existing Projects into Workspace,选择“Select archive file”选项,然后导航至zip文件。单击完成将项目导入到工作区中。
- 由于此项目是使用旧版本的MyEclipse创建的,因此将打开“Project Migration”向导。请按照向导中的步骤迁移项目。
- 进行以下操作重新配置项目来匹配您的环境:
a、编辑hibernate.cfg.xml并更改连接设置以反映您的数据库设置。提示:可能需要更改EchoMessage.hbm.xml才能改变在class元素中指定的模式。
b、建立与数据库的连接,并执行DDL/DDL.sql文件中的代码创建并填充示例表。在执行之前,可能需要使用模式前缀来限定表,并对数据库特定的DDL进行其他更改。
c、将数据库的JDBC驱动程序JAR复制到项目中。右键单击项目,然后选择build path > Add to build path,将其添加到构建路径中。
本教程还包括以下文件:
- log4j.properties - 用于控制log4j库执行的日志记录级别。
- ehcache.xml - 用于配置ehcache库。
- HibernateWriteTest.java - 一个示例应用程序,演示了如何使用DAO来写数据库。

想与更多人聊MyEclips?加入**MyEclipse中国(官方2):742336981**畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg) 查看全部
在**[上篇](https://www.myeclipsecn.com/bbs/?/article/200)**中,介绍了创建启用了Hibernate的Java项目、自定义Hibernate配置文件、使用逆向工程进行Java表映射等详细操作步骤(点击此处查看更多)。本文承接上篇,继续介绍“使用Hibernate开发Persistence”操作方法的其他内容。
**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**5、使用HQL Editor**
- 通过以下步骤使用ECHO_MESSAGE表(该表是使用本教程开始时提供的SQL命令添加的)。
- 映射到ECHO_MESSAGE表。
- 右键单击HibernateDemo项目,然后选择[MyEclipse](https://www.myeclipsecn.com/)>打开HQL Editor。
**注意:**每次打开扩展名为.hql的文件时,HQL Editor都会打开。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
- 编辑器打开后,输入EchoMessage。
- 单击运行图标或按CTRL + F9执行查询。
![请输入图片名称](https://www.evget.com/Content/ ... 19.png)
- 使用查询参数视图执行变量查询。
![请输入图片名称](https://www.evget.com/Content/ ... 23.png)
**注意:**在为项目初始化HQL Editor后更改配置、映射或数据对象,请使用编辑器工具栏上的“Refresh”按钮以确保编辑器选择了最新的更改。
如果您正在编辑一个NamedQuery注释,可以在查询属性重调用quick fix(通常为CTRL + 1)来复制到HQL Editor。这将打开HQL编辑器,并使用查询字符串对其进行初始化。
![请输入图片名称](https://www.evget.com/Content/ ... 72.gif)
您可以在HQL Editor中测试和编辑查询。完成后,关闭编辑器可让您将修改后的查询复制回Java编辑器中的query属性。
打开项目的HQL Editor后,将为NamedQueries提供内容辅助和验证(CTRL +空格键)。
![请输入图片名称](https://www.evget.com/Content/ ... 78.jpg)
**6、测试HibernateDemo应用程序**
测试Hibernate持久性的一种方法是使用main方法创建Java类。测试类使用Java对象和由Hibernate向导创建的HibernateSessionFactory。查看在HibernateSession类中定义的两个重要方法,如下所示,它们在测试代码中使用。
![请输入图片名称](https://www.evget.com/Content/ ... 70.gif)
显示的是SessionManager类中的两个重要的静态方法。
- getSession():此方法返回一个Session变量,可用于访问Hibernate Session类。每当您要使用Hibernate会话时,都可以调用此方法来获取缓存的Hibernate Session。
- closeSession():如果会话已经启动,则此方法可将其关闭。
以下是测试代码中的步骤列表以及源代码示例:
- 选择File > New > Class。
- 输入包名称。
- 在Name字段中输入HibernateReadTest。
- 如图所示完成页面,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 64.gif)
- 打开HibernateReadTest.java文件,将源代码替换为下面的代码,然后按CTRL + S保存。

{{{
package com.myeclipse.hibernate;

import java.math.BigDecimal;
import org.hibernate.HibernateException;

public class HibernateReadTest {

public static void main(String[] args) {
// Step 1 - Create the DAO
EchoMessageDAO dao = new EchoMessageDAO();
try {
// Step 2 - Use findById to retrieve the message with ID = 1
EchoMessage echoMessage = dao.findById(new BigDecimal(1));
System.out.println("Entity retrieval successful, message is: "
+ echoMessage.getMsg());
} catch (HibernateException e){
System.err.println("Entity retrieval failed.");
e.printStackTrace();
} finally {
try {
dao.getSession().close();
} catch (Exception e) {
// do nothing
}
}
}
}
}}}
- 在资源管理器中右键单击HibernateReadTest.java文件,然后选择 Run > Run As > Java Application。将打开“Console”视图,如果测试成功,您将看到如下图所示的输出。
**注意:**如果看到log4j警告,可以忽略。
![请输入图片名称](https://www.evget.com/Content/ ... 01.gif)
**7、导入示例HibernateDemo项目**
- [下载HibernateDemo.zip。](https://www.evget.com/resource/detail-demo-14454)
- 从菜单中选择Import > Existing Projects into Workspace,选择“Select archive file”选项,然后导航至zip文件。单击完成将项目导入到工作区中。
- 由于此项目是使用旧版本的MyEclipse创建的,因此将打开“Project Migration”向导。请按照向导中的步骤迁移项目。
- 进行以下操作重新配置项目来匹配您的环境:
a、编辑hibernate.cfg.xml并更改连接设置以反映您的数据库设置。提示:可能需要更改EchoMessage.hbm.xml才能改变在class元素中指定的模式。
b、建立与数据库的连接,并执行DDL/DDL.sql文件中的代码创建并填充示例表。在执行之前,可能需要使用模式前缀来限定表,并对数据库特定的DDL进行其他更改。
c、将数据库的JDBC驱动程序JAR复制到项目中。右键单击项目,然后选择build path > Add to build path,将其添加到构建路径中。
本教程还包括以下文件:
- log4j.properties - 用于控制log4j库执行的日志记录级别。
- ehcache.xml - 用于配置ehcache库。
- HibernateWriteTest.java - 一个示例应用程序,演示了如何使用DAO来写数据库。

想与更多人聊MyEclips?加入**MyEclipse中国(官方2):742336981**畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg)








MyEclipse数据库教程:使用Hibernate开发Persistence(一)

Java EE开发momo77 发表了文章 • 0 个评论 • 36 次浏览 • 2019-11-11 11:22 • 来自相关话题

**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
在本教程中,将介绍如何:
- 在Java项目中启用Hibernate支持
- 创建一个Hibernate配置文件
- 使用自定义Session Factory
- 使用HQL编辑器生成Java类和数据库映射文件
**1、创建一个示例数据库表**
在开始本教程之前,必须设置受支持的数据库服务器,例如嵌入式Derby数据库或外部安装的数据库。对于本教程,则使用在MyEclipse中连接到数据库中创建的Oracle数据库连接配置文件。
首先,请使用以下SQL命令创建您将映射到Java类的数据库表。为方便测试,该表包括几个记录。
echo_message DDL
创建表echo_message

id整数PRIMARY KEY不为null,
msg VARCHAR(255)
);
插入echo_message值(1,'hello world');
插入echo_message值(2,'goodbye world');

**注意**:即使本教程使用Oracle,上面的说明和示例表也足够通用,可以用于任何数据库。
**2、创建一个启用了Hibernate的Java项目**
- 选择 File>New>Project>Java Project。
- 在“HibernateDemo”字段中键入HibernateDemo,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 12.gif)
- 右键单击HibernateDemo,然后选择MyEclipse> Project Facets> Install Hibernate Facet。
- 从目标运行时下拉列表中选择MyEclipse通用Java Runtime,然后单击下一步。MyEclipse 为您创建一个新的hibernate.cfg.xml文件。
![请输入图片名称](https://www.evget.com/Content/ ... 83.png)
**注:**启用Hibernate注释支持仅适用于Hibernate 3.2和3.3,Hibernate 4.x自动包含注释支持。注释支持在SessionFactory类中创建AnnotationConfiguration而不是常规Configuration。如果您要使用带注释的POJO而不是Hibernate映射文件,这一点很有必要。
- 单击“Java Package”字段旁边的“新建”以为session factory类创建新的软件包。键入com.myeclipse.hibernate作为程序包名称,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 13.png)
- 单击“Next”,然后保留“ Specify数据库连接详细信息”复选框。
- 从DB Driver下拉列表中,选择在MyEclipse中连接数据库时创建的Oracle配置文件。这一操作将自动填充其余字段。
- 您可以通过单击Next添加库,或单击Finish接受默认的库。
**注意:**在这个阶段不需要配置文件。您无需选择概要文件,采用手动填充此页面上显示的其余详细信息。但有一点必须注意,一定要在向导完成后将JDBC驱动程序JAR文件复制到项目中。
![请输入图片名称](https://www.evget.com/Content/ ... 01.gif)
现在,可以跳过上面执行的数据源配置,稍后使用Hibernate Configuration编辑器进行。
**注意:**稍后还可以通过选择File > New >Other,展开MyEclipse > Hibernate并选择Hibernate Session Factory来创建Session Factory。如果您选择将库复制到项目中,那么在完成过程中,向导在复制库和更新各种项目资源时最多可能会出现30秒钟的非活动状态。这时,需耐心等待所有操作完成,然后再采取其他措施。
完成向导将执行以下操作:
- 如果选择将Hibernate库(JAR)复制到项目中,则将其安装到项目中
- 更新项目的构建路径以包括已安装的Hibernate库
- 为项目创建和配置hibernate.cfg.xml文件
- 为项目创建一个自定义SessionFactory类(例如HibernateSessionFactory),以简化Hibernate会话处理。
下图突出显示了新创建的HibernateSessionFactory.java文件的重要功能。此类管理单个Hibernate Session对象,该对象由该getSession()方法延迟初始化,并由该方法刷新和释放closeSession()。在运行时,Hibernate会话创建过程必须能够在类路径上找到hibernate.cfg.xml文件。
CONFIG_FILE_LOCATION变量定义了hibernate.cfg.xml文件相对于软件包的路径,默认值由Hibernate支持向导提供。如果您重新定位 hibernate.cfg.xml文件,则必须手动修改CONFIG_FILE_LOCATION值来引用新位置,或者在使用前使用该setConfigFile()方法进行设置。
![请输入图片名称](https://www.evget.com/Content/ ... 23.gif)
**3、自定义Hibernate配置文件**
完成添加Hibernate功能的向导后,hibernate配置文件将自动打开。如果在添加功能时跳过了数据源配置,那么现在需要使用以下步骤进行操作。如果您已经配置了数据源,请继续添加属性。
- 选择“Use JDBC Driver”选项,指定在数据库资源管理器中定义的JDBC驱动程序。如果尚未配置JDBC驱动程序,请阅读[MyEclipse教程“连接到数据库”](https://www.evget.com/article/2015/2/4/22120.html),并继续之前进行的配置。
- 在“Connection Profile”下拉列表中选择配置文件。如果配置了JDBC驱动程序但未配置连接配置文件,则可以单击“New profile”来创建一个新的连接配置文件。如果已经有一个连接配置文件,从下拉列表中选择它时,接下来的四个字段将自动填写。
- 单击 Copy JDBC Driver并添加到类路径链接。
- 从“Dialect”下拉列表中,为数据库选择适当的Hibernate方言。
Configuration页现在应该像这样:
![请输入图片名称](https://www.evget.com/Content/ ... 20.gif)
您可以使用“Properties”选项来添加和编辑属性。
![请输入图片名称](https://www.evget.com/Content/ ... 71.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 74.gif)
映射部分允许您添加项目中可能已经存在的映射文件,同时还支持从资源管理器中拖放映射文件。
![请输入图片名称](https://resources.cloud.genuit ... ng.gif)
![请输入图片名称](https://resources.cloud.genuit ... ng.gif)
![请输入图片名称](https://resources.cloud.genuit ... ot.gif)
下图显示的是完成上述步骤后的Hibernate配置文件源。
![请输入图片名称](https://www.evget.com/Content/ ... 47.gif)
**4、使用逆向工程进行Java表映射**
由于大多数公司的Web项目都涉及到与关系数据库中现有的公司数据进行交互,所以本节重点介绍正向工程Java数据对象和来自现有数据库的映射描述符。
- 选择Window > Open Perspective > Other,然后选择MyEclipse Hibernate。
- 使用您在Hibernate配置中使用的配置文件打开数据库连接。
- 浏览数据库架构,直到找到要为其创建Hibernate映射的表/实体。
- 右键单击该表,然后选择“Hibernate Reverse Engineering”。或者从数据库浏览器中拖动表,并将它们放到Hibernate Configuration编辑器中以启动向导。
**注意:**您可以在数据库浏览器中选择多个表,以便同时对它们进行反向工程。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 84.png)
- 单击Java src文件夹字段旁边的浏览,查看可用的Hibernate项目和可在其中生成文件的源文件夹。在HibernateDemo项目中选择src文件夹。
- 单击Java软件包字段旁边的浏览,然后选择com.myeclipse.hibernate软件包。
- 如下所示完成向导的其余部分,然后单击“下一步”。
**注意:**向导的第2页和第3页的设置用于自定义逆向工程过程。无需自定义任何设置,通过单击Finish now就可以启动该过程。
![请输入图片名称](https://www.evget.com/Content/ ... 24.gif)
- 接受默认设置,然后单击“下一步”。
![请输入图片名称](https://www.evget.com/Content/ ... 41.gif)
- 单击两个“Include Referenced Tables”复选框,使向导在反向工程过程中包括引用表。单击完成。
![请输入图片名称](https://resources.cloud.genuit ... es.png)
**注意:**选择表或列可以专门针对表或列定制逆向工程。
![请输入图片名称](https://www.evget.com/Content/ ... 29.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 35.gif)
逆向工程执行以下操作:
- 创建Abstract <tablename>类。这个抽象类提供了必需的Hibernate兼容性功能,例如用于与数据库表中的列相对应的持久属性的公共getter和setter方法。
- 创建<tablename> Java类,它是Abstract <tablename>类的具体子类。所述<表名> 类旨直接使用附加的业务和验证逻辑进行修改,并且在后续的生成过程中不会被覆盖。
- 创建.hbm.xml Hibernate映射描述符。这个文件指导Hibernate如何<tablename> Java类和数据库表之间映射数据。
- 在hibernate.cfg.xml文件中注册<tablename> .hbm.xml映射描述符。
- 创建<tablename> DAO Java类。该类提供对<tablename>数据对象类的便捷性访问。
- 创建IBaseHibernateDAO接口和BaseHibernateDAO类。这些类对于基本DAO的功能是必需的,它们使用添加Hibernate功能时生成的Session工厂(com.myeclipse.hibernate.HibernateSessionFactory)来获取Hibernate会话。
下图突出显示了所生成的类、关键方法和映射文件,以及对hibernate.cfg.xml文件中添加的映射文件的引用。
![请输入图片名称](https://www.evget.com/Content/ ... 84.jpg)
**4.1使用Templates对生成的代码进行微调**
- [将模板文件](https://www.evget.com/resource/detail-demo-14454)下载并解压到、文件系统。
- 按照zip文件中README.txt的说明自定义模板。
- 调用逆向工程向导。在向导的第一页上,选择“Use Custom Templates”选项,然后在“Template Directory”字段中,指定包含您下载的模板的文件夹。
**4.2使用Custom Reverse Engineering Strategy**
- 右键单击项目,选择Properties,并选择Java构建路径。
- 单击Libraries标签,然后单击Add Library。
- 选择MyEclipse Library,单击Next,并选择MyEclipse Persistence Tools。单击Finish。
![请输入图片名称](https://www.evget.com/Content/ ... 23.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 78.gif)
- 在项目中创建一个新类,来扩展org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy类。
- 定义单个参数构造函数,例如columnToPropertyName。以下是一个示例MyStrategy.java文件,该文件将ME_前缀添加到所有生成的属性中。

{{{
package com.myeclipse.hibernate;

import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.TableIdentifier;

public class MyStrategy extends DelegatingReverseEngineeringStrategy {
public MyStrategy(ReverseEngineeringStrategy strategy){
super(strategy);
}

public String
columnToPropertyName(TableIdentifier table, String columnName) { return "ME_" + super.columnToPropertyName(table, columnName);
}
}
}}}

- 在“Reverse Engineering”向导的第二页上,指定刚创建的类。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)

想与更多人聊MyEclips?加入***MyEclipse中国(官方2):742336981***畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg) 查看全部
**[在开始本教程之前,请先下载并熟悉MyEclipse数据库工具。](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
在本教程中,将介绍如何:
- 在Java项目中启用Hibernate支持
- 创建一个Hibernate配置文件
- 使用自定义Session Factory
- 使用HQL编辑器生成Java类和数据库映射文件
**1、创建一个示例数据库表**
在开始本教程之前,必须设置受支持的数据库服务器,例如嵌入式Derby数据库或外部安装的数据库。对于本教程,则使用在MyEclipse中连接到数据库中创建的Oracle数据库连接配置文件。
首先,请使用以下SQL命令创建您将映射到Java类的数据库表。为方便测试,该表包括几个记录。
echo_message DDL
创建表echo_message

id整数PRIMARY KEY不为null,
msg VARCHAR(255)
);
插入echo_message值(1,'hello world');
插入echo_message值(2,'goodbye world');

**注意**:即使本教程使用Oracle,上面的说明和示例表也足够通用,可以用于任何数据库。
**2、创建一个启用了Hibernate的Java项目**
- 选择 File>New>Project>Java Project。
- 在“HibernateDemo”字段中键入HibernateDemo,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 12.gif)
- 右键单击HibernateDemo,然后选择MyEclipse> Project Facets> Install Hibernate Facet。
- 从目标运行时下拉列表中选择MyEclipse通用Java Runtime,然后单击下一步。MyEclipse 为您创建一个新的hibernate.cfg.xml文件。
![请输入图片名称](https://www.evget.com/Content/ ... 83.png)
**注:**启用Hibernate注释支持仅适用于Hibernate 3.2和3.3,Hibernate 4.x自动包含注释支持。注释支持在SessionFactory类中创建AnnotationConfiguration而不是常规Configuration。如果您要使用带注释的POJO而不是Hibernate映射文件,这一点很有必要。
- 单击“Java Package”字段旁边的“新建”以为session factory类创建新的软件包。键入com.myeclipse.hibernate作为程序包名称,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 13.png)
- 单击“Next”,然后保留“ Specify数据库连接详细信息”复选框。
- 从DB Driver下拉列表中,选择在MyEclipse中连接数据库时创建的Oracle配置文件。这一操作将自动填充其余字段。
- 您可以通过单击Next添加库,或单击Finish接受默认的库。
**注意:**在这个阶段不需要配置文件。您无需选择概要文件,采用手动填充此页面上显示的其余详细信息。但有一点必须注意,一定要在向导完成后将JDBC驱动程序JAR文件复制到项目中。
![请输入图片名称](https://www.evget.com/Content/ ... 01.gif)
现在,可以跳过上面执行的数据源配置,稍后使用Hibernate Configuration编辑器进行。
**注意:**稍后还可以通过选择File > New >Other,展开MyEclipse > Hibernate并选择Hibernate Session Factory来创建Session Factory。如果您选择将库复制到项目中,那么在完成过程中,向导在复制库和更新各种项目资源时最多可能会出现30秒钟的非活动状态。这时,需耐心等待所有操作完成,然后再采取其他措施。
完成向导将执行以下操作:
- 如果选择将Hibernate库(JAR)复制到项目中,则将其安装到项目中
- 更新项目的构建路径以包括已安装的Hibernate库
- 为项目创建和配置hibernate.cfg.xml文件
- 为项目创建一个自定义SessionFactory类(例如HibernateSessionFactory),以简化Hibernate会话处理。
下图突出显示了新创建的HibernateSessionFactory.java文件的重要功能。此类管理单个Hibernate Session对象,该对象由该getSession()方法延迟初始化,并由该方法刷新和释放closeSession()。在运行时,Hibernate会话创建过程必须能够在类路径上找到hibernate.cfg.xml文件。
CONFIG_FILE_LOCATION变量定义了hibernate.cfg.xml文件相对于软件包的路径,默认值由Hibernate支持向导提供。如果您重新定位 hibernate.cfg.xml文件,则必须手动修改CONFIG_FILE_LOCATION值来引用新位置,或者在使用前使用该setConfigFile()方法进行设置。
![请输入图片名称](https://www.evget.com/Content/ ... 23.gif)
**3、自定义Hibernate配置文件**
完成添加Hibernate功能的向导后,hibernate配置文件将自动打开。如果在添加功能时跳过了数据源配置,那么现在需要使用以下步骤进行操作。如果您已经配置了数据源,请继续添加属性。
- 选择“Use JDBC Driver”选项,指定在数据库资源管理器中定义的JDBC驱动程序。如果尚未配置JDBC驱动程序,请阅读[MyEclipse教程“连接到数据库”](https://www.evget.com/article/2015/2/4/22120.html),并继续之前进行的配置。
- 在“Connection Profile”下拉列表中选择配置文件。如果配置了JDBC驱动程序但未配置连接配置文件,则可以单击“New profile”来创建一个新的连接配置文件。如果已经有一个连接配置文件,从下拉列表中选择它时,接下来的四个字段将自动填写。
- 单击 Copy JDBC Driver并添加到类路径链接。
- 从“Dialect”下拉列表中,为数据库选择适当的Hibernate方言。
Configuration页现在应该像这样:
![请输入图片名称](https://www.evget.com/Content/ ... 20.gif)
您可以使用“Properties”选项来添加和编辑属性。
![请输入图片名称](https://www.evget.com/Content/ ... 71.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 74.gif)
映射部分允许您添加项目中可能已经存在的映射文件,同时还支持从资源管理器中拖放映射文件。
![请输入图片名称](https://resources.cloud.genuit ... ng.gif)
![请输入图片名称](https://resources.cloud.genuit ... ng.gif)
![请输入图片名称](https://resources.cloud.genuit ... ot.gif)
下图显示的是完成上述步骤后的Hibernate配置文件源。
![请输入图片名称](https://www.evget.com/Content/ ... 47.gif)
**4、使用逆向工程进行Java表映射**
由于大多数公司的Web项目都涉及到与关系数据库中现有的公司数据进行交互,所以本节重点介绍正向工程Java数据对象和来自现有数据库的映射描述符。
- 选择Window > Open Perspective > Other,然后选择MyEclipse Hibernate。
- 使用您在Hibernate配置中使用的配置文件打开数据库连接。
- 浏览数据库架构,直到找到要为其创建Hibernate映射的表/实体。
- 右键单击该表,然后选择“Hibernate Reverse Engineering”。或者从数据库浏览器中拖动表,并将它们放到Hibernate Configuration编辑器中以启动向导。
**注意:**您可以在数据库浏览器中选择多个表,以便同时对它们进行反向工程。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 84.png)
- 单击Java src文件夹字段旁边的浏览,查看可用的Hibernate项目和可在其中生成文件的源文件夹。在HibernateDemo项目中选择src文件夹。
- 单击Java软件包字段旁边的浏览,然后选择com.myeclipse.hibernate软件包。
- 如下所示完成向导的其余部分,然后单击“下一步”。
**注意:**向导的第2页和第3页的设置用于自定义逆向工程过程。无需自定义任何设置,通过单击Finish now就可以启动该过程。
![请输入图片名称](https://www.evget.com/Content/ ... 24.gif)
- 接受默认设置,然后单击“下一步”。
![请输入图片名称](https://www.evget.com/Content/ ... 41.gif)
- 单击两个“Include Referenced Tables”复选框,使向导在反向工程过程中包括引用表。单击完成。
![请输入图片名称](https://resources.cloud.genuit ... es.png)
**注意:**选择表或列可以专门针对表或列定制逆向工程。
![请输入图片名称](https://www.evget.com/Content/ ... 29.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 35.gif)
逆向工程执行以下操作:
- 创建Abstract <tablename>类。这个抽象类提供了必需的Hibernate兼容性功能,例如用于与数据库表中的列相对应的持久属性的公共getter和setter方法。
- 创建<tablename> Java类,它是Abstract <tablename>类的具体子类。所述<表名> 类旨直接使用附加的业务和验证逻辑进行修改,并且在后续的生成过程中不会被覆盖。
- 创建.hbm.xml Hibernate映射描述符。这个文件指导Hibernate如何<tablename> Java类和数据库表之间映射数据。
- 在hibernate.cfg.xml文件中注册<tablename> .hbm.xml映射描述符。
- 创建<tablename> DAO Java类。该类提供对<tablename>数据对象类的便捷性访问。
- 创建IBaseHibernateDAO接口和BaseHibernateDAO类。这些类对于基本DAO的功能是必需的,它们使用添加Hibernate功能时生成的Session工厂(com.myeclipse.hibernate.HibernateSessionFactory)来获取Hibernate会话。
下图突出显示了所生成的类、关键方法和映射文件,以及对hibernate.cfg.xml文件中添加的映射文件的引用。
![请输入图片名称](https://www.evget.com/Content/ ... 84.jpg)
**4.1使用Templates对生成的代码进行微调**
- [将模板文件](https://www.evget.com/resource/detail-demo-14454)下载并解压到、文件系统。
- 按照zip文件中README.txt的说明自定义模板。
- 调用逆向工程向导。在向导的第一页上,选择“Use Custom Templates”选项,然后在“Template Directory”字段中,指定包含您下载的模板的文件夹。
**4.2使用Custom Reverse Engineering Strategy**
- 右键单击项目,选择Properties,并选择Java构建路径。
- 单击Libraries标签,然后单击Add Library。
- 选择MyEclipse Library,单击Next,并选择MyEclipse Persistence Tools。单击Finish。
![请输入图片名称](https://www.evget.com/Content/ ... 23.gif)
![请输入图片名称](https://www.evget.com/Content/ ... 78.gif)
- 在项目中创建一个新类,来扩展org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy类。
- 定义单个参数构造函数,例如columnToPropertyName。以下是一个示例MyStrategy.java文件,该文件将ME_前缀添加到所有生成的属性中。

{{{
package com.myeclipse.hibernate;

import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.TableIdentifier;

public class MyStrategy extends DelegatingReverseEngineeringStrategy {
public MyStrategy(ReverseEngineeringStrategy strategy){
super(strategy);
}

public String
columnToPropertyName(TableIdentifier table, String columnName) { return "ME_" + super.columnToPropertyName(table, columnName);
}
}
}}}

- 在“Reverse Engineering”向导的第二页上,指定刚创建的类。
![请输入图片名称](https://www.evget.com/Content/ ... 83.gif)

想与更多人聊MyEclips?加入***MyEclipse中国(官方2):742336981***畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg)

MyEclipse数据库教程:使用Hibernate和Spring执行数据库操作(二)

Java EE开发momo77 发表了文章 • 0 个评论 • 29 次浏览 • 2019-11-11 10:41 • 来自相关话题

在**[上篇](https://www.myeclipsecn.com/bbs/?/article/198)**中,介绍了设置样本数据库、连接到数据库、创建一个启用了Hibernate的项目、将Spring Facet添加到项目中、逆向工程数据库表以及编写 Hibernate-Spring 代码的详细操作方法。本文承接**[上篇](https://www.myeclipsecn.com/bbs/?/article/198)**,继续为大家介绍使用Hibernate和Spring执行数据库操作的相关内容。
**[免费下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**7、创建一个Spring Bean作为PersistenceLayer**
PersistenceLayer如何获得对UserDAO的引用来真正执行那些持久性操作?答案是:您需要为抽象的持久层创建一个新的Spring bean配置条目,让它通过正确引用MyEclipse生成的DAO,来与数据库进行通信。
- 单击 Window > Show View > Other展开Spring,然后选择Spring Explorer打开Spring Explorer。
- 展开HibernateSpringProject> Beans> applicationContext.xml,右键单击bean,然后选择New Bean。
- 输入持久层的Bean的标识字段,然后输入在Bean类字段中的com.myeclipse.hibernatespring.PersistenceLayer。
![请输入图片名称](https://www.evget.com/Content/ ... 95.png)
- 单击属性标签,然后单击添加。
- 在“Name”字段中键入userDAO,从“Spring Type”下拉列表中选择ref,在“Reference”字段中输入UserDAO,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 73.png)
- 在Bean向导窗口上单击Finish,然后按Ctrl+S保存配置文件。完成以上操作后,业务逻辑代码就可以向BeanFactory请求persistenceLayer Bean,并获取该Bean的准备好的实例。
**8、创建一个数据源Spring Bean**
- 使用Spring Explorer创建一个新的bean。
- 在“Bean Id”字段中输入dataSource,并在“Bean class”字段中输入org.springframework.jdbc.datasource.DriverManagerDataSource。
![请输入图片名称](https://www.evget.com/Content/ ... 03.png)
- 单击“Properties”标签,添加以下属性:
1、名称类型值
2、riverClassName value:com.mysql.jdbc.Drive
3、rurl value jdbc:mysql://localhost:3306/test
4、用户名值root
5、密码值<your password>
- 在Bean向导窗口上单击Finish。
- 在Spring资源管理器中,右键单击sessionFactory bean,并选择Add Properties。
- 在“Name”字段中输入dataSource,将Spring类型保留为ref,在“Reference”字段中输入dataSource。
![请输入图片名称](https://www.evget.com/Content/ ... 54.png)
- 单击“Finish”,然后按Ctrl S保存配置文件。
**9、运行应用程序**
- 在资源管理器中,展开 HibernateSpringProject > src > com.myeclipse.hibernatespring。
- 右键单击BusinessLogic.java,选择 Run As>Java Application。Console视图将显示结果。
![请输入图片名称](https://www.evget.com/Content/ ... 39.png)
通过以上步骤可以看到,使用PersistenceLayer时,仅用几行代码就可以从数据库中存储、更新和删除用户。
**10、使用Hibernate注释和Spring**
MyEclipse为独立的Hibernate项目和Spring/Hibernate项目提供了Hibernate注释支持。以下部分将简要概述对Hibernate Annotations和Spring的支持。
注意:Hibernate 4.x自动包含注释支持。
**10.1 创建具有注释支持的Hibernate / Spring项目(Hibernate 3.x)**
在为Hibernate 3.x创建、启用Hibernate和spring的项目时,需要执行以下操作来启用注释支持。当项目添加Hibernate3.x功能时,一定要选择“启用Hibernate注释支持”复选框。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
- 在第3页上添加Spring功能时,请选中“Enable Hibernate annotation support”复选框。这将创建一个AnnotationSessionFactoryBean,而不是LocalSessionFactoryBean。在使用注释时,AnnotationSessionFactoryBean是必需的。
![请输入图片名称](https://www.evget.com/Content/ ... 86.gif)
**10.2 逆向工程**
当您选择Spring bean配置文件时,使用上述过程的项目设置中的Hibernate项目属性页会在SessionFactory Bean ID下拉列表中同时列出LocalSessionFactoryBean bean和AnnotationSessionFactoryBean bean。
注意:为了在逆向工程过程中为Hibernate 3.x提供注释支持,必须在Active Configuration File字段中选择Hibernate配置文件,或者为SessionFactory选择Spring bean配置文件和 AnnotationSessionFactoryBean。
![请输入图片名称](https://www.evget.com/Content/ ... 36.gif)
为Spring DAO提供的会话工厂bean Ids取决于您是否选择生成带注释的POJO或Hibernate映射文件。如果选择生成带注释的POJO,那么SessionFactory Id下拉列表中将仅显示AnnotationSessionFactoryBeans,否则将同时列出LocalSessionFactoryBean bean和AnnotationSessionFactoryBean bean。
![请输入图片名称](https://www.evget.com/Content/ ... 75.gif)

想与更多人聊MyEclips?加入****MyEclipse中国(官方2):742336981****畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg) 查看全部
在**[上篇](https://www.myeclipsecn.com/bbs/?/article/198)**中,介绍了设置样本数据库、连接到数据库、创建一个启用了Hibernate的项目、将Spring Facet添加到项目中、逆向工程数据库表以及编写 Hibernate-Spring 代码的详细操作方法。本文承接**[上篇](https://www.myeclipsecn.com/bbs/?/article/198)**,继续为大家介绍使用Hibernate和Spring执行数据库操作的相关内容。
**[免费下载MyEclipse>>>](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**7、创建一个Spring Bean作为PersistenceLayer**
PersistenceLayer如何获得对UserDAO的引用来真正执行那些持久性操作?答案是:您需要为抽象的持久层创建一个新的Spring bean配置条目,让它通过正确引用MyEclipse生成的DAO,来与数据库进行通信。
- 单击 Window > Show View > Other展开Spring,然后选择Spring Explorer打开Spring Explorer。
- 展开HibernateSpringProject> Beans> applicationContext.xml,右键单击bean,然后选择New Bean。
- 输入持久层的Bean的标识字段,然后输入在Bean类字段中的com.myeclipse.hibernatespring.PersistenceLayer。
![请输入图片名称](https://www.evget.com/Content/ ... 95.png)
- 单击属性标签,然后单击添加。
- 在“Name”字段中键入userDAO,从“Spring Type”下拉列表中选择ref,在“Reference”字段中输入UserDAO,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 73.png)
- 在Bean向导窗口上单击Finish,然后按Ctrl+S保存配置文件。完成以上操作后,业务逻辑代码就可以向BeanFactory请求persistenceLayer Bean,并获取该Bean的准备好的实例。
**8、创建一个数据源Spring Bean**
- 使用Spring Explorer创建一个新的bean。
- 在“Bean Id”字段中输入dataSource,并在“Bean class”字段中输入org.springframework.jdbc.datasource.DriverManagerDataSource。
![请输入图片名称](https://www.evget.com/Content/ ... 03.png)
- 单击“Properties”标签,添加以下属性:
1、名称类型值
2、riverClassName value:com.mysql.jdbc.Drive
3、rurl value jdbc:mysql://localhost:3306/test
4、用户名值root
5、密码值<your password>
- 在Bean向导窗口上单击Finish。
- 在Spring资源管理器中,右键单击sessionFactory bean,并选择Add Properties。
- 在“Name”字段中输入dataSource,将Spring类型保留为ref,在“Reference”字段中输入dataSource。
![请输入图片名称](https://www.evget.com/Content/ ... 54.png)
- 单击“Finish”,然后按Ctrl S保存配置文件。
**9、运行应用程序**
- 在资源管理器中,展开 HibernateSpringProject > src > com.myeclipse.hibernatespring。
- 右键单击BusinessLogic.java,选择 Run As>Java Application。Console视图将显示结果。
![请输入图片名称](https://www.evget.com/Content/ ... 39.png)
通过以上步骤可以看到,使用PersistenceLayer时,仅用几行代码就可以从数据库中存储、更新和删除用户。
**10、使用Hibernate注释和Spring**
MyEclipse为独立的Hibernate项目和Spring/Hibernate项目提供了Hibernate注释支持。以下部分将简要概述对Hibernate Annotations和Spring的支持。
注意:Hibernate 4.x自动包含注释支持。
**10.1 创建具有注释支持的Hibernate / Spring项目(Hibernate 3.x)**
在为Hibernate 3.x创建、启用Hibernate和spring的项目时,需要执行以下操作来启用注释支持。当项目添加Hibernate3.x功能时,一定要选择“启用Hibernate注释支持”复选框。
![请输入图片名称](https://www.evget.com/Content/ ... 77.gif)
- 在第3页上添加Spring功能时,请选中“Enable Hibernate annotation support”复选框。这将创建一个AnnotationSessionFactoryBean,而不是LocalSessionFactoryBean。在使用注释时,AnnotationSessionFactoryBean是必需的。
![请输入图片名称](https://www.evget.com/Content/ ... 86.gif)
**10.2 逆向工程**
当您选择Spring bean配置文件时,使用上述过程的项目设置中的Hibernate项目属性页会在SessionFactory Bean ID下拉列表中同时列出LocalSessionFactoryBean bean和AnnotationSessionFactoryBean bean。
注意:为了在逆向工程过程中为Hibernate 3.x提供注释支持,必须在Active Configuration File字段中选择Hibernate配置文件,或者为SessionFactory选择Spring bean配置文件和 AnnotationSessionFactoryBean。
![请输入图片名称](https://www.evget.com/Content/ ... 36.gif)
为Spring DAO提供的会话工厂bean Ids取决于您是否选择生成带注释的POJO或Hibernate映射文件。如果选择生成带注释的POJO,那么SessionFactory Id下拉列表中将仅显示AnnotationSessionFactoryBeans,否则将同时列出LocalSessionFactoryBean bean和AnnotationSessionFactoryBean bean。
![请输入图片名称](https://www.evget.com/Content/ ... 75.gif)

想与更多人聊MyEclips?加入****MyEclipse中国(官方2):742336981****畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg)

MyEclipse数据库教程:使用Hibernate和Spring执行数据库操作(一)

Java EE开发momo77 发表了文章 • 0 个评论 • 24 次浏览 • 2019-11-11 10:27 • 来自相关话题

在本教程中,您将学习如何:
- 连接到数据库
- 将Hibernate和Spring添加到项目中
- 通过对数据库表进行逆向工程来生成实体
- 创建Spring Beans作为持久层和数据源
- 启用Hibernate 3.x注释支持
**[免费下载MyEclipse](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**1、设置样本数据库**
本教程中的示例使用了一个带有用户表和数据的MySQL 5实例,用到了以下文件准备样本数据。在开始本教程之前,您必须建立一个数据库。
- 示例数据库内容
- 为用户表创建SQL脚本
**2、连接到数据库**
- 单击打开Database Explorer图标 ,选择MyEclipse数据库浏览器。
- 在数据库浏览器中,单击,然后选择新建。
- 从“Driver Template”下拉菜单中选择“MySQL Connector/J”,在“Driver name field”字段中键入MySQL Connector/J,将<hostname> [<:3306>] / <dbname>替换为localhost:3306 / test,然后输入用户名和密码。
![请输入图片名称](https://www.evget.com/Content/ ... 72.png)
- 单击添加JAR。导航到MySQL Connector/J JAR文件的位置,然后选择文件。“Driver classname field”将自动填充,然后点击Finish。
![请输入图片名称](https://www.evget.com/Content/ ... 85.png)
- 在DB Explorer中选择MySQL Connector/J,然后单击 ![请输入图片名称](https://www.evget.com/Content/ ... 48.png)打开链接。
**3、创建一个启用了Hibernate的项目**
您可以为任何受支持的基础项目(通常是Java或Web)启用Hibernate和Spring。
- 选择File>New>Project,展开Java,选择Java项目,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 98.png)
- 在“Project name”字段中输入HibernateSpringProject,然后单击“完成”。系统将提示您切换到Java透视图。选择“Yes”。
![请输入图片名称](https://www.evget.com/Content/ ... 04.png)
- 右键单击该项目,选择 Configure Facets > Install Hibernate Facet。注意,这里需要选择4.1作为Hibernate规范版本。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
- 点击下一步。MyEclipse将创建一个新的hibernate.cfg.xml文件。
![请输入图片名称](https://www.evget.com/Content/ ... 09.png)
- 单击Java package字段旁边的New为session factory class创建一个新的软件包,并命名为com.myeclipse.hibernatespring,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
- 单击下一步,从数据库驱动程序下拉列表中选择MySQL Connector/J,输入密码,然后单击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 15.png)
现在,该项目包含所有Hibernate和JDBC库,并且hibernate.cfg.xml文件在“Configuration”编辑器中打开。配置文件包含来自连接配置文件的连接信息。当您对数据库表进行反向工程时,实体将出现在配置文件的Mappings部分。
![请输入图片名称](https://www.evget.com/Content/ ... 26.png)
**4、将Spring Facet添加到项目中**
对于小型应用程序来说,Spring并不太适用,但是当您看到使用Spring通过简单地调整bean配置文件中的引用来交换代码库的整个部分有多么容易时,您就会意识到该工具的功能真的很强大。最明显的是,使用Spring来测试将会简单很多。例如,您可以交换一个持久性实现,该实现将其所有调用都发送给嵌入式DBMS,或者记录其所有活动。然后,当应用程序部署到生产环境中时,将持久性实现切换回使用主DBMS的代码,这些代码不使用日志记录就能提高性能。
- 右键单击该项目,然后选择 Configure Facets > Install Spring Facet。
- 接受默认的Spring版本和目标运行时,然后单击Next。
- MyEclipse将创建一个新的applicationContext.xml文件。点击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 56.png)
现在,这个项目就同时具有Hibernate和Spring功能。
![请输入图片名称](https://www.evget.com/Content/ ... 61.png)
**5、逆向工程数据库表**
对数据库表进行反向工程时,会在项目中生成Hibernate(Java)对象。由于该项目是Hibernate-Spring项目,所以MyEclipse在逆向工程期间提供的不仅仅是普通DAO,而是Spring DAO选项。这就意味着系统将自动创建DAO Spring bean,这些bean的sessionFactory属性已经正确配置为对Hibernate SessionFactory的现有Spring引用。接下来,我们将通过几个步骤使用简单的逆向工程形式,让向导获取所有默认值。但是,为了实现最大程度的控制,您可以使用“Nxt”按钮,通过向导一步一步地浏览详细信息,比如主键生成策略、对象名称、类型等。
- 切换回数据库浏览器透视图。
- 在数据库浏览器中,将MySQL Connector/J扩展到用户表。
![请输入图片名称](https://www.evget.com/Content/ ... 82.png)
- 右键单击用户表,然后选择“Hibernate Reverse Engineering”。
- 单击Java src文件夹旁边的浏览,展开 HibernateSpringProject > src,选择com.myeclipse.hibernatespring,然后单击确定。
![请输入图片名称](https://www.evget.com/Content/ ... 33.png)
- 选择 Create POJO <> DB 表映射信息复选框,选择Java数据对象复选框,再选择Java数据访问对象(DAO)复选框,然后单击完成。您将收到系统关于切换到Hibernate透视图的提示,只需要单击“Yes”即可。
![请输入图片名称](https://www.evget.com/Content/ ... 65.png)
- 将Hibernate类生成到Java包中,并创建Spring Bean。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
![请输入图片名称](https://www.evget.com/Content/ ... 49.png)
**6、编写 Hibernate-Spring 代码**
设置好项目后,就可以开始编写代码了。本过程需要两段代码:
- 业务逻辑:表示应用程序代码的主要方法。
- 持久层:这是业务逻辑应用于数据库功能的应用程序的抽象部分。如果使用的所有业务逻辑都是持久性层,那么您可以在这一层后面隐藏它工作的一些细节。本例使用Spring将执行数据库操作所需的必要DAO引用填充到持久层,这样做的好处是业务逻辑不需要了解任何相关信息。
将每个名为BusinessLogic.java和PersistenceLayer.java的类添加到com.myeclipse.hibernatespring包。从持久性层开始,因为它位于刚刚生成的所有代码和在业务逻辑层中编写的代码之间。它是持久化技术(Hibernate)和由Spring管理的业务逻辑(main方法)之间的抽象。将以下代码添加到PersistenceLayer类,这个类的目的是获得一个由Spring注入的UserDAO实例,然后使用该引用来实现save/find/update和delete操作(不需要调用代码的)。这使您不用完全更改应用程序的代码就能轻松、快速地修改应用程序中的持久性代码。更具体地说,如果您想更改PersistenceLayer的实现方式,比如说要更好地管理异常、事务或其他任何事情,可以通过编辑此类来完成。只要所有方法标签保持不变,就不需要重构整个应用程序。

{{{
package com.myeclipse.hibernatespring;

public class PersistenceLayer {
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public void addUser(User user) {
userDAO.save(user);
}

public User findUserById(Integer id) {
return
userDAO.findById(id);
}

public void updateUser(User user) {
userDAO.merge(user);
}

public void deleteUser(User user) {
userDAO.delete(user);
}
}
}}}
另外,由于此抽象层与应用程序代码中的持久性代码是松散地耦合的,可以轻松的使用Spring注入一个测试UserDAO实现。例如,该实现模拟数据库操作,但实际上并不执行这些操作。现在您已经实现了PersistenceLayer,接下来将以下业务逻辑(或主要方法实现)代码添加到BusinessLogic类。业务逻辑(主要方法)利用抽象的持久层来添加/查找/更新以及从数据库中删除用户。

{{{
package com.myeclipse.hibernatespring;
import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class BusinessLogic {

public static void main(String[] args) {

/* 1. Create a new user */
Integer id = new Integer(1);
User user = new User();
user.setId(id);
user.setUsername("jdoe");
user.setPassword("1234");
user.setFirstName("John");
user.setLastName("Doe");
user.setDateCreated(Long.valueOf(System.currentTimeMillis()));

/* 2. Load the Spring bean configuration and create a bean factory */
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

/* 3. Create instance of PersistenceLayer */
PersistenceLayer persistenceLayer = (PersistenceLayer) ctx.getBean("persistenceLayer");

/* 4. Save the new user to the database */
persistenceLayer.addUser(user);

/* 5. Confirm that our user was saved */
User userLoadedFromDB = persistenceLayer.findUserById(id);
System.out.println("User Loaded from DB [username="
+ userLoadedFromDB.getUsername() + ", password="
+ userLoadedFromDB.getPassword() + ", firstName="
+ userLoadedFromDB.getFirstName() + ", lastName="
+ userLoadedFromDB.getLastName() + "]");

/* 6. Update the user */
userLoadedFromDB.setFirstName("Johnathan");
persistenceLayer.updateUser(userLoadedFromDB);

/* 7. Confirm that the update worked */
User userLoadedFromDBAgain = persistenceLayer
.findUserById(id);
System.out.println("User Loaded from DB Again [firstName="
+ userLoadedFromDBAgain.getFirstName() + "]");

/* 8. Delete the user */
persistenceLayer.deleteUser(user);
}
}
}}}
这个代码具有以下功能:
+ 创建一个新用户来插入数据库。它使用MyEclipse在从数据库逆向工程用户表时生成的用户POJO。
+ 创建一个bean工厂。它的作用是读入Spring bean配置文件,然后向“工厂”提供一个实例,该“工厂”可用于根据该文件中的规范获取bean的实例。这是Spring的“入口点”。
+ 创建PersistenceLayer实例,这样就可以执行数据库操作了!注意,为了正确填充UserDAO引用,您必须使用bean工厂来获取实例。
+ 使用创建的PersistenceLayer实例将新用户保存到数据库。注意,由于所有调用都通过PersistenceLayer进行,因此BusinessLogic类不了解UserDAO类或任何底层详细信息。
+ 在保存时,分配给用户的ID将从数据库中重新加载用户,通过这样的方式来检查并确保所有值都是正确的。
+ 更新用户名查看更新记录是否有效。
+ 重新从数据库加载用户,以确保修改的地方已完全更新。
+ 从数据库中删除用户。

想与更多人聊MyEclips?加入****MyEclipse中国(官方2):742336981****畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg) 查看全部
在本教程中,您将学习如何:
- 连接到数据库
- 将Hibernate和Spring添加到项目中
- 通过对数据库表进行逆向工程来生成实体
- 创建Spring Beans作为持久层和数据源
- 启用Hibernate 3.x注释支持
**[免费下载MyEclipse](https://www.myeclipsecn.com/download/)**
**[慧都16周年·技术服务月,软件商城优惠券不限量免费领取,购物立减服务升级,购MyEclipse享折上折优惠!](https://www.evget.com/mall/detail/3016)**
**1、设置样本数据库**
本教程中的示例使用了一个带有用户表和数据的MySQL 5实例,用到了以下文件准备样本数据。在开始本教程之前,您必须建立一个数据库。
- 示例数据库内容
- 为用户表创建SQL脚本
**2、连接到数据库**
- 单击打开Database Explorer图标 ,选择MyEclipse数据库浏览器。
- 在数据库浏览器中,单击,然后选择新建。
- 从“Driver Template”下拉菜单中选择“MySQL Connector/J”,在“Driver name field”字段中键入MySQL Connector/J,将<hostname> [<:3306>] / <dbname>替换为localhost:3306 / test,然后输入用户名和密码。
![请输入图片名称](https://www.evget.com/Content/ ... 72.png)
- 单击添加JAR。导航到MySQL Connector/J JAR文件的位置,然后选择文件。“Driver classname field”将自动填充,然后点击Finish。
![请输入图片名称](https://www.evget.com/Content/ ... 85.png)
- 在DB Explorer中选择MySQL Connector/J,然后单击 ![请输入图片名称](https://www.evget.com/Content/ ... 48.png)打开链接。
**3、创建一个启用了Hibernate的项目**
您可以为任何受支持的基础项目(通常是Java或Web)启用Hibernate和Spring。
- 选择File>New>Project,展开Java,选择Java项目,然后单击下一步。
![请输入图片名称](https://www.evget.com/Content/ ... 98.png)
- 在“Project name”字段中输入HibernateSpringProject,然后单击“完成”。系统将提示您切换到Java透视图。选择“Yes”。
![请输入图片名称](https://www.evget.com/Content/ ... 04.png)
- 右键单击该项目,选择 Configure Facets > Install Hibernate Facet。注意,这里需要选择4.1作为Hibernate规范版本。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
- 点击下一步。MyEclipse将创建一个新的hibernate.cfg.xml文件。
![请输入图片名称](https://www.evget.com/Content/ ... 09.png)
- 单击Java package字段旁边的New为session factory class创建一个新的软件包,并命名为com.myeclipse.hibernatespring,然后单击“完成”。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
- 单击下一步,从数据库驱动程序下拉列表中选择MySQL Connector/J,输入密码,然后单击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 15.png)
现在,该项目包含所有Hibernate和JDBC库,并且hibernate.cfg.xml文件在“Configuration”编辑器中打开。配置文件包含来自连接配置文件的连接信息。当您对数据库表进行反向工程时,实体将出现在配置文件的Mappings部分。
![请输入图片名称](https://www.evget.com/Content/ ... 26.png)
**4、将Spring Facet添加到项目中**
对于小型应用程序来说,Spring并不太适用,但是当您看到使用Spring通过简单地调整bean配置文件中的引用来交换代码库的整个部分有多么容易时,您就会意识到该工具的功能真的很强大。最明显的是,使用Spring来测试将会简单很多。例如,您可以交换一个持久性实现,该实现将其所有调用都发送给嵌入式DBMS,或者记录其所有活动。然后,当应用程序部署到生产环境中时,将持久性实现切换回使用主DBMS的代码,这些代码不使用日志记录就能提高性能。
- 右键单击该项目,然后选择 Configure Facets > Install Spring Facet。
- 接受默认的Spring版本和目标运行时,然后单击Next。
- MyEclipse将创建一个新的applicationContext.xml文件。点击完成。
![请输入图片名称](https://www.evget.com/Content/ ... 56.png)
现在,这个项目就同时具有Hibernate和Spring功能。
![请输入图片名称](https://www.evget.com/Content/ ... 61.png)
**5、逆向工程数据库表**
对数据库表进行反向工程时,会在项目中生成Hibernate(Java)对象。由于该项目是Hibernate-Spring项目,所以MyEclipse在逆向工程期间提供的不仅仅是普通DAO,而是Spring DAO选项。这就意味着系统将自动创建DAO Spring bean,这些bean的sessionFactory属性已经正确配置为对Hibernate SessionFactory的现有Spring引用。接下来,我们将通过几个步骤使用简单的逆向工程形式,让向导获取所有默认值。但是,为了实现最大程度的控制,您可以使用“Nxt”按钮,通过向导一步一步地浏览详细信息,比如主键生成策略、对象名称、类型等。
- 切换回数据库浏览器透视图。
- 在数据库浏览器中,将MySQL Connector/J扩展到用户表。
![请输入图片名称](https://www.evget.com/Content/ ... 82.png)
- 右键单击用户表,然后选择“Hibernate Reverse Engineering”。
- 单击Java src文件夹旁边的浏览,展开 HibernateSpringProject > src,选择com.myeclipse.hibernatespring,然后单击确定。
![请输入图片名称](https://www.evget.com/Content/ ... 33.png)
- 选择 Create POJO <> DB 表映射信息复选框,选择Java数据对象复选框,再选择Java数据访问对象(DAO)复选框,然后单击完成。您将收到系统关于切换到Hibernate透视图的提示,只需要单击“Yes”即可。
![请输入图片名称](https://www.evget.com/Content/ ... 65.png)
- 将Hibernate类生成到Java包中,并创建Spring Bean。
![请输入图片名称](https://www.evget.com/Content/ ... 45.png)
![请输入图片名称](https://www.evget.com/Content/ ... 49.png)
**6、编写 Hibernate-Spring 代码**
设置好项目后,就可以开始编写代码了。本过程需要两段代码:
- 业务逻辑:表示应用程序代码的主要方法。
- 持久层:这是业务逻辑应用于数据库功能的应用程序的抽象部分。如果使用的所有业务逻辑都是持久性层,那么您可以在这一层后面隐藏它工作的一些细节。本例使用Spring将执行数据库操作所需的必要DAO引用填充到持久层,这样做的好处是业务逻辑不需要了解任何相关信息。
将每个名为BusinessLogic.java和PersistenceLayer.java的类添加到com.myeclipse.hibernatespring包。从持久性层开始,因为它位于刚刚生成的所有代码和在业务逻辑层中编写的代码之间。它是持久化技术(Hibernate)和由Spring管理的业务逻辑(main方法)之间的抽象。将以下代码添加到PersistenceLayer类,这个类的目的是获得一个由Spring注入的UserDAO实例,然后使用该引用来实现save/find/update和delete操作(不需要调用代码的)。这使您不用完全更改应用程序的代码就能轻松、快速地修改应用程序中的持久性代码。更具体地说,如果您想更改PersistenceLayer的实现方式,比如说要更好地管理异常、事务或其他任何事情,可以通过编辑此类来完成。只要所有方法标签保持不变,就不需要重构整个应用程序。

{{{
package com.myeclipse.hibernatespring;

public class PersistenceLayer {
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public void addUser(User user) {
userDAO.save(user);
}

public User findUserById(Integer id) {
return
userDAO.findById(id);
}

public void updateUser(User user) {
userDAO.merge(user);
}

public void deleteUser(User user) {
userDAO.delete(user);
}
}
}}}
另外,由于此抽象层与应用程序代码中的持久性代码是松散地耦合的,可以轻松的使用Spring注入一个测试UserDAO实现。例如,该实现模拟数据库操作,但实际上并不执行这些操作。现在您已经实现了PersistenceLayer,接下来将以下业务逻辑(或主要方法实现)代码添加到BusinessLogic类。业务逻辑(主要方法)利用抽象的持久层来添加/查找/更新以及从数据库中删除用户。

{{{
package com.myeclipse.hibernatespring;
import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class BusinessLogic {

public static void main(String[] args) {

/* 1. Create a new user */
Integer id = new Integer(1);
User user = new User();
user.setId(id);
user.setUsername("jdoe");
user.setPassword("1234");
user.setFirstName("John");
user.setLastName("Doe");
user.setDateCreated(Long.valueOf(System.currentTimeMillis()));

/* 2. Load the Spring bean configuration and create a bean factory */
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

/* 3. Create instance of PersistenceLayer */
PersistenceLayer persistenceLayer = (PersistenceLayer) ctx.getBean("persistenceLayer");

/* 4. Save the new user to the database */
persistenceLayer.addUser(user);

/* 5. Confirm that our user was saved */
User userLoadedFromDB = persistenceLayer.findUserById(id);
System.out.println("User Loaded from DB [username="
+ userLoadedFromDB.getUsername() + ", password="
+ userLoadedFromDB.getPassword() + ", firstName="
+ userLoadedFromDB.getFirstName() + ", lastName="
+ userLoadedFromDB.getLastName() + "]");

/* 6. Update the user */
userLoadedFromDB.setFirstName("Johnathan");
persistenceLayer.updateUser(userLoadedFromDB);

/* 7. Confirm that the update worked */
User userLoadedFromDBAgain = persistenceLayer
.findUserById(id);
System.out.println("User Loaded from DB Again [firstName="
+ userLoadedFromDBAgain.getFirstName() + "]");

/* 8. Delete the user */
persistenceLayer.deleteUser(user);
}
}
}}}
这个代码具有以下功能:
+ 创建一个新用户来插入数据库。它使用MyEclipse在从数据库逆向工程用户表时生成的用户POJO。
+ 创建一个bean工厂。它的作用是读入Spring bean配置文件,然后向“工厂”提供一个实例,该“工厂”可用于根据该文件中的规范获取bean的实例。这是Spring的“入口点”。
+ 创建PersistenceLayer实例,这样就可以执行数据库操作了!注意,为了正确填充UserDAO引用,您必须使用bean工厂来获取实例。
+ 使用创建的PersistenceLayer实例将新用户保存到数据库。注意,由于所有调用都通过PersistenceLayer进行,因此BusinessLogic类不了解UserDAO类或任何底层详细信息。
+ 在保存时,分配给用户的ID将从数据库中重新加载用户,通过这样的方式来检查并确保所有值都是正确的。
+ 更新用户名查看更新记录是否有效。
+ 重新从数据库加载用户,以确保修改的地方已完全更新。
+ 从数据库中删除用户。

想与更多人聊MyEclips?加入****MyEclipse中国(官方2):742336981****畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
![请输入图片名称](https://www.evget.com/Content/ ... 11.jpg)

这个安装过程的第一步怎么解决啊

回复

下载|安装|配置|更新chaichai1206 发起了问题 • 1 人关注 • 0 个回复 • 35 次浏览 • 2019-11-08 12:03 • 来自相关话题

代码自动补全插件CodeMix发布CI 2019.10.29,新增Angular控制面板

下载|安装|配置|更新momo77 发表了文章 • 0 个评论 • 53 次浏览 • 2019-11-01 14:05 • 来自相关话题

[CodeMix](https://www.myeclipsecn.com/codemix/)是一款解锁了VS Code的各种技术以及为Code OSS构建的附加扩展的插件。于VS Code相比,CodeMix集成在Eclipse插件里面更符合开发者的使用习惯,包括Webclipse中用户最喜欢的功能(如带有Live Preview的Terminal +和CodeLive),包含适用于JavaScript的IntelliSense、TypeScript、JSON、HTML、CSS、Less和Sass,支持用任何编程语言完成的字,且与基于Eclipse的IDE和工具兼容(如[MyEclipse](https://www.myeclipsecn.com/),您可以通过[下载MyEclipse](https://www.myeclipsecn.com/download/)来使用这款插件哦~)。
目前,[CodeMix](https://www.myeclipsecn.com/codemix/)最新版(CI 2019.10.29)已正式上线,以下是本次更新的详细内容。
**[正版CodeMix最低只要¥218,手慢无!立即抢购>>>](https://www.evget.com/mall/detail/4078)**

**Angular控制面板**
CodeMix获得了技术控制面板!第一个面板是针对Angular的,它公开了从启动服务器、打开浏览器到运行NPM审计等一系列操作。其他技术也即将出现。
**问题检测与验证**
全新的用户体验极大地简化了Web项目的工作,从验证项目、linting到启动外部构建。其他修复程序提高了验证的可靠性,其中包括对模板文件(例如Angular中使用的模板文件)的改进。
**Evergreen情况不再有**
现在,CodeMix使用Eclipse机制来检查更新,不再自动更新。CodeMix将提供发布通知,并根据需要提供更新选项。
**优化和性能**
持续的改进加速了任务错误报告、输入性能的处理速度,并更加关注保持低CPU负载和快速编码。
**更新失败恢复**
现在,当在更新时意外中断时,Eclipse的更新机制可能会留下部分下载。CodeMix将检测引擎等关键区域,并自动恢复部分下载。
**Angular可靠性**
从Angular 8的Live Preview修复程序,到服务器状态的一致报告,再到更好的模板验证,很多修复程序已提高了使用Angular的可靠性。
**编辑修订**
修复程序集合提供了更好的查找/替换支持,使用dirty编辑器时的改进,与Save As之类的操作更加一致。
**稳定修复**
为了提高开发的稳定性,新版本从Mac和Linux上的资源监视方式到处理复杂项目和编辑器一起运作的可靠性,进行了一系列关键更改。 查看全部
[CodeMix](https://www.myeclipsecn.com/codemix/)是一款解锁了VS Code的各种技术以及为Code OSS构建的附加扩展的插件。于VS Code相比,CodeMix集成在Eclipse插件里面更符合开发者的使用习惯,包括Webclipse中用户最喜欢的功能(如带有Live Preview的Terminal +和CodeLive),包含适用于JavaScript的IntelliSense、TypeScript、JSON、HTML、CSS、Less和Sass,支持用任何编程语言完成的字,且与基于Eclipse的IDE和工具兼容(如[MyEclipse](https://www.myeclipsecn.com/),您可以通过[下载MyEclipse](https://www.myeclipsecn.com/download/)来使用这款插件哦~)。
目前,[CodeMix](https://www.myeclipsecn.com/codemix/)最新版(CI 2019.10.29)已正式上线,以下是本次更新的详细内容。
**[正版CodeMix最低只要¥218,手慢无!立即抢购>>>](https://www.evget.com/mall/detail/4078)**

**Angular控制面板**
CodeMix获得了技术控制面板!第一个面板是针对Angular的,它公开了从启动服务器、打开浏览器到运行NPM审计等一系列操作。其他技术也即将出现。
**问题检测与验证**
全新的用户体验极大地简化了Web项目的工作,从验证项目、linting到启动外部构建。其他修复程序提高了验证的可靠性,其中包括对模板文件(例如Angular中使用的模板文件)的改进。
**Evergreen情况不再有**
现在,CodeMix使用Eclipse机制来检查更新,不再自动更新。CodeMix将提供发布通知,并根据需要提供更新选项。
**优化和性能**
持续的改进加速了任务错误报告、输入性能的处理速度,并更加关注保持低CPU负载和快速编码。
**更新失败恢复**
现在,当在更新时意外中断时,Eclipse的更新机制可能会留下部分下载。CodeMix将检测引擎等关键区域,并自动恢复部分下载。
**Angular可靠性**
从Angular 8的Live Preview修复程序,到服务器状态的一致报告,再到更好的模板验证,很多修复程序已提高了使用Angular的可靠性。
**编辑修订**
修复程序集合提供了更好的查找/替换支持,使用dirty编辑器时的改进,与Save As之类的操作更加一致。
**稳定修复**
为了提高开发的稳定性,新版本从Mac和Linux上的资源监视方式到处理复杂项目和编辑器一起运作的可靠性,进行了一系列关键更改。

CodeMix使用教程:编辑

综合讨论区momo77 发表了文章 • 0 个评论 • 36 次浏览 • 2019-10-30 10:06 • 来自相关话题

**[CodeMix](https://www.myeclipsecn.com/codemix/)**插件与基于Eclipse的IDE和工具(例如MyEclipse、Spring Tools Suite和JBoss Tools )兼容,因此您可以在习惯的环境中继续工作。
**[正版CodeMix最低只要¥218,手慢无!立即抢购>>>](https://www.evget.com/mall/detail/4078)**

**设置编辑器参数**
您可以通过设置参数来自定义CodeMix编辑器中的体验。大多数参数可从Window > Preferences > CodeMix > Editors 中访问。
![请输入图片名称](https://www.evget.com/Content/ ... 14.png)
**注意:**某些设置使用Eclipse参数。要选择显示的标签宽度和为标签设置插入空间,请转到 General > Editors > Text Editors。要选择自动保存设置,请转至 General > Editors > Autosave。
**格式化代码**
通过格式化程序,可以快速格式化代码,使其保持一致并易于阅读。[CodeMix](https://www.myeclipsecn.com/codemix/)包括许多文件类型的内置格式设置,您可以通过选择安装格式扩展名来更好地控制格式设置。
**代码折叠**
您可以使用代码折叠功能,在编辑器中折叠和扩展代码部分,更轻松地处理大型文件并专注于相关代码。
**设置代码折叠参数**
默认情况下启用代码折叠。要更改此参数,请转到 Preferences > CodeMix > Editors > Folding。
![请输入图片名称](https://www.evget.com/Content/ ... 97.png)
**使用代码折叠**
代码左侧的减号图标指示可开始折叠的位置,单击图标可隐藏代码块;代码块中的第一行通过加号图标保持可见,单击加号图标可展开代码块。
**提示:**悬停在加号图标上可预览折叠的代码。
![请输入图片名称](https://www.evget.com/Content/ ... 81.png)
您还可以在数字键盘上使用以下快捷方式:

- 全部收缩:Ctrl+Shift+/
- 展开全部:Ctrl+Shift+*
- 折叠当前:Ctrl+- (Ctrl键和减号键)
- 展开当前:Ctrl++ (Ctrl键和加号键) 查看全部
**[CodeMix](https://www.myeclipsecn.com/codemix/)**插件与基于Eclipse的IDE和工具(例如MyEclipse、Spring Tools Suite和JBoss Tools )兼容,因此您可以在习惯的环境中继续工作。
**[正版CodeMix最低只要¥218,手慢无!立即抢购>>>](https://www.evget.com/mall/detail/4078)**

**设置编辑器参数**
您可以通过设置参数来自定义CodeMix编辑器中的体验。大多数参数可从Window > Preferences > CodeMix > Editors 中访问。
![请输入图片名称](https://www.evget.com/Content/ ... 14.png)
**注意:**某些设置使用Eclipse参数。要选择显示的标签宽度和为标签设置插入空间,请转到 General > Editors > Text Editors。要选择自动保存设置,请转至 General > Editors > Autosave。
**格式化代码**
通过格式化程序,可以快速格式化代码,使其保持一致并易于阅读。[CodeMix](https://www.myeclipsecn.com/codemix/)包括许多文件类型的内置格式设置,您可以通过选择安装格式扩展名来更好地控制格式设置。
**代码折叠**
您可以使用代码折叠功能,在编辑器中折叠和扩展代码部分,更轻松地处理大型文件并专注于相关代码。
**设置代码折叠参数**
默认情况下启用代码折叠。要更改此参数,请转到 Preferences > CodeMix > Editors > Folding。
![请输入图片名称](https://www.evget.com/Content/ ... 97.png)
**使用代码折叠**
代码左侧的减号图标指示可开始折叠的位置,单击图标可隐藏代码块;代码块中的第一行通过加号图标保持可见,单击加号图标可展开代码块。
**提示:**悬停在加号图标上可预览折叠的代码。
![请输入图片名称](https://www.evget.com/Content/ ... 81.png)
您还可以在数字键盘上使用以下快捷方式:

- 全部收缩:Ctrl+Shift+/
- 展开全部:Ctrl+Shift+*
- 折叠当前:Ctrl+- (Ctrl键和减号键)
- 展开当前:Ctrl++ (Ctrl键和加号键)

MyEclipse使用教程:使用Dashboard可快速启动项目

Java EE开发momo77 发表了文章 • 0 个评论 • 22 次浏览 • 2019-10-30 09:48 • 来自相关话题

使用MyEclipse Dashboard视图可以快速开始新项目。您可以找到指向新项目向导、项目导入、源代码控制中的项目和相关帮助主题的快速链接。单击与要创建的项目类型对应的标签,可查找与该项目类型相关的链接。
**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**
“Dashboard”视图将在MyEclipse透视图中自动打开。要在启动时禁用Dashboard,请选中“Dashboard”视图底部的“不要在启动时再次显示此Dashboard”复选框。使用主工具栏上的Open Dashboard图标打开MyEclipse Dashboard。如下图:
![请输入图片名称](https://www.evget.com/Content/ ... 08.png)
通过Dashboard,您还可以访问其他工具和信息。单击学习中心标签可查看分类和可搜索的帮助。
通过单击“示例”标签访问“按需示例”,可以安装各种类型的示例项目,学习MyEclipse中的某些技术。如下图:
![请输入图片名称](https://www.evget.com/Content/ ... 86.png)
**[正版MyEclipse限时钜惠,续费用户享受比原价更优惠的价格!立即戳!](https://www.myeclipsecn.com/buy/)**
要了解给定MyEclipse版本中的新增功能,请单击Delivery Log标签。
或许您还需要一些帮助来启动一个Web项目?单击模板标签可签出各种模板,这些模板将帮助您立即启动并运行。
![请输入图片名称](https://www.evget.com/Content/ ... 04.png)
最后,记得单击Metrics标签查看MyEclipse的详细使用情况,包括用于编码的时间(项目和技术的细目分类),以及每天部署到服务器的时间。 查看全部
使用MyEclipse Dashboard视图可以快速开始新项目。您可以找到指向新项目向导、项目导入、源代码控制中的项目和相关帮助主题的快速链接。单击与要创建的项目类型对应的标签,可查找与该项目类型相关的链接。
**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**
“Dashboard”视图将在MyEclipse透视图中自动打开。要在启动时禁用Dashboard,请选中“Dashboard”视图底部的“不要在启动时再次显示此Dashboard”复选框。使用主工具栏上的Open Dashboard图标打开MyEclipse Dashboard。如下图:
![请输入图片名称](https://www.evget.com/Content/ ... 08.png)
通过Dashboard,您还可以访问其他工具和信息。单击学习中心标签可查看分类和可搜索的帮助。
通过单击“示例”标签访问“按需示例”,可以安装各种类型的示例项目,学习MyEclipse中的某些技术。如下图:
![请输入图片名称](https://www.evget.com/Content/ ... 86.png)
**[正版MyEclipse限时钜惠,续费用户享受比原价更优惠的价格!立即戳!](https://www.myeclipsecn.com/buy/)**
要了解给定MyEclipse版本中的新增功能,请单击Delivery Log标签。
或许您还需要一些帮助来启动一个Web项目?单击模板标签可签出各种模板,这些模板将帮助您立即启动并运行。
![请输入图片名称](https://www.evget.com/Content/ ... 04.png)
最后,记得单击Metrics标签查看MyEclipse的详细使用情况,包括用于编码的时间(项目和技术的细目分类),以及每天部署到服务器的时间。

请问这个问题怎么解决

回复

下载|安装|配置|更新tengshao 发起了问题 • 1 人关注 • 0 个回复 • 28 次浏览 • 2019-10-24 14:23 • 来自相关话题

1024·程序员节来啦!MyEclipse/CodeMix现金红包限时领取中!

MyEclipse IDE公告besy 发表了文章 • 0 个评论 • 23 次浏览 • 2019-10-21 09:52 • 来自相关话题

![请输入图片名称](https://image.evget.com/Conten ... 1b.png)

**1024·程序员狂欢季**

**[MyEclipse/CodeMix — Java开发利器!现金红包免费领!](https://www.evget.com/game/index/coder#dev)**
快拆开看你的最大优惠券是多少,幸运奖红包翻倍!

**[立即抢](https://www.evget.com/game/index/coder#dev)**

## 活动详情 ##
**活动时间**:即日起至2019年10月24日 18:00:00

**参与对象**:本活动仅针对慧都网注册认证会员,包含手机认证、邮箱认证、微信认证。

**优惠券说明**:

- 优惠券不可转让、提现,过期作废;
- 领取优惠券后可登陆慧都网个人中心或慧都网小程序查看优惠码;
- 优惠券过期时间以个人中心>优惠券说明为准;
- 慧都网有权取消用户通过使用程序手段抢刷而获得的所有礼品与福利;

本活动规则未阐述部分,慧都网保留本活动的最终解释权。
更多活动细则,请联系“[在线客服](https://chat8.live800.com/live ... Bs%3D1)”获取!

**退款说明**:本次活动涉及付款享受了现金优惠和其他非现金优惠的订单,均不支持退款。

## 实用资源推荐 ##
**MyEclipse实用教程资源推荐**

- [MyEclipse使用教程:unattended安装](https://www.evget.com/article/2019/6/28/30870.html)
- [MyEclipse使用教程:使用主题自定义工作台外观](https://www.evget.com/article/2019/7/3/30927.html)
- [MyEclipse使用教程:使用DevStyle增强型启动](https://www.evget.com/article/2019/7/8/30994.html)
- [Eclipse/MyEclipse超全常用快捷键汇总,绝对实用!](https://www.evget.com/article/2019/7/15/31133.html)
- [MyEclipse内存不足?这里有你想要的问题解决方案](https://www.evget.com/article/2019/7/26/31391.html)
- [Java 11必掌握的8大特性,完美代码信手拈来!](https://www.evget.com/article/2019/7/31/31445.html)
- [MyEclipse使用教程:使用DevStyle Icon Designer(一)](https://www.evget.com/article/2019/8/16/31748.html)
- [MyEclipse使用教程:使用DevStyle Icon Designer(二)](https://www.evget.com/article/2019/8/22/31849.html)
- [MyEclipse使用教程:使用工作集组织工作区](https://www.evget.com/article/2019/8/29/31963.html)
- [MyEclipse使用教程:添加和更新插件(一)](https://www.evget.com/article/2019/9/3/32043.html)
- [MyEclipse使用教程:添加和更新插件(二)](https://www.evget.com/article/2019/9/6/32137.html)
- [MyEclipse使用教程:导航代码(一)](https://www.evget.com/article/2019/9/11/32204.html)
- [MyEclipse使用教程:导航代码(二)](https://www.evget.com/article/2019/9/17/32276.html)
- [MyEclipse使用教程:使用DevStyle Breadcrumb导航](https://www.evget.com/article/2019/9/20/32346.html)
- [MyEclipse使用教程:使用内联搜索](https://www.evget.com/article/2019/9/25/32420.html)
- [推荐!用于Productive Workflow的Eclipse快捷方式(一)](https://www.evget.com/article/2019/9/29/32481.html)
- [推荐!用于Productive Workflow的Eclipse快捷方式(二)](https://www.evget.com/article/2019/10/9/32547.html)

**MyEclipse/CodeMix视频资源推荐**

- [MyEclipse视频教程:代码导航](https://www.evget.com/video/2402)
- [CodeMix独家中文视频:Vue.js开发 5分钟快速入门](https://www.evget.com/video/1656)
- [CodeMix独家中文视频:入门指南](https://www.evget.com/video/2012)

MyEclipse中国(官方2): 742336981 欢迎一起进群讨论

咨询热线: 400-700-1020(免费)
本活动规则未阐述部分,慧都网保留本活动的最终解释权。 查看全部
![请输入图片名称](https://image.evget.com/Conten ... 1b.png)

**1024·程序员狂欢季**

**[MyEclipse/CodeMix — Java开发利器!现金红包免费领!](https://www.evget.com/game/index/coder#dev)**
快拆开看你的最大优惠券是多少,幸运奖红包翻倍!

**[立即抢](https://www.evget.com/game/index/coder#dev)**

## 活动详情 ##
**活动时间**:即日起至2019年10月24日 18:00:00

**参与对象**:本活动仅针对慧都网注册认证会员,包含手机认证、邮箱认证、微信认证。

**优惠券说明**:

- 优惠券不可转让、提现,过期作废;
- 领取优惠券后可登陆慧都网个人中心或慧都网小程序查看优惠码;
- 优惠券过期时间以个人中心>优惠券说明为准;
- 慧都网有权取消用户通过使用程序手段抢刷而获得的所有礼品与福利;

本活动规则未阐述部分,慧都网保留本活动的最终解释权。
更多活动细则,请联系“[在线客服](https://chat8.live800.com/live ... Bs%3D1)”获取!

**退款说明**:本次活动涉及付款享受了现金优惠和其他非现金优惠的订单,均不支持退款。

## 实用资源推荐 ##
**MyEclipse实用教程资源推荐**

- [MyEclipse使用教程:unattended安装](https://www.evget.com/article/2019/6/28/30870.html)
- [MyEclipse使用教程:使用主题自定义工作台外观](https://www.evget.com/article/2019/7/3/30927.html)
- [MyEclipse使用教程:使用DevStyle增强型启动](https://www.evget.com/article/2019/7/8/30994.html)
- [Eclipse/MyEclipse超全常用快捷键汇总,绝对实用!](https://www.evget.com/article/2019/7/15/31133.html)
- [MyEclipse内存不足?这里有你想要的问题解决方案](https://www.evget.com/article/2019/7/26/31391.html)
- [Java 11必掌握的8大特性,完美代码信手拈来!](https://www.evget.com/article/2019/7/31/31445.html)
- [MyEclipse使用教程:使用DevStyle Icon Designer(一)](https://www.evget.com/article/2019/8/16/31748.html)
- [MyEclipse使用教程:使用DevStyle Icon Designer(二)](https://www.evget.com/article/2019/8/22/31849.html)
- [MyEclipse使用教程:使用工作集组织工作区](https://www.evget.com/article/2019/8/29/31963.html)
- [MyEclipse使用教程:添加和更新插件(一)](https://www.evget.com/article/2019/9/3/32043.html)
- [MyEclipse使用教程:添加和更新插件(二)](https://www.evget.com/article/2019/9/6/32137.html)
- [MyEclipse使用教程:导航代码(一)](https://www.evget.com/article/2019/9/11/32204.html)
- [MyEclipse使用教程:导航代码(二)](https://www.evget.com/article/2019/9/17/32276.html)
- [MyEclipse使用教程:使用DevStyle Breadcrumb导航](https://www.evget.com/article/2019/9/20/32346.html)
- [MyEclipse使用教程:使用内联搜索](https://www.evget.com/article/2019/9/25/32420.html)
- [推荐!用于Productive Workflow的Eclipse快捷方式(一)](https://www.evget.com/article/2019/9/29/32481.html)
- [推荐!用于Productive Workflow的Eclipse快捷方式(二)](https://www.evget.com/article/2019/10/9/32547.html)

**MyEclipse/CodeMix视频资源推荐**

- [MyEclipse视频教程:代码导航](https://www.evget.com/video/2402)
- [CodeMix独家中文视频:Vue.js开发 5分钟快速入门](https://www.evget.com/video/1656)
- [CodeMix独家中文视频:入门指南](https://www.evget.com/video/2012)

MyEclipse中国(官方2): 742336981 欢迎一起进群讨论

咨询热线: 400-700-1020(免费)
本活动规则未阐述部分,慧都网保留本活动的最终解释权。

请问MyEclipse 2015 Windows版下载地址

下载|安装|配置|更新zaw3000 回复了问题 • 4 人关注 • 2 个回复 • 604 次浏览 • 2019-10-16 16:51 • 来自相关话题

Eclipse代码补全插件CodeMix发布CI 2019.9.25|修复部分兼容性问题

下载|安装|配置|更新besy 发表了文章 • 0 个评论 • 55 次浏览 • 2019-10-12 10:24 • 来自相关话题

作为Eclipse开发人员,您再也不必觉得自己已被排除在朋友使用Visual Studio Code的乐趣之外。 **[CodeMix](https://www.myeclipsecn.com/codemix/)**是一个Eclipse插件,使您可以直接从Eclipse访问VS Code本身和Code OSS附加扩展的各种技术。您将享受您所依赖的所有企业工具,例如Java和Spring,以及访问所有这些网络语言以及您一直想要尝试的新技术。

编码没有限制,可以使用Python,PHP和TypeScript等语言扩展,以及Vue,React和Angular等框架。

[CodeMix](https://www.myeclipsecn.com/codemix/)与基于Eclipse的IDE和工具(如MyEclipse,Spring Tools Suite和JBoss Tools)兼容,因此您可以继续在您习惯的环境中工作。

**[立即戳!购买CodeMix CI 2019.9.25有优惠!](https://www.evget.com/product/4078/license)**

具体更新内容如下:

## Angular Extension Rollback ##
Angular Language Services 0.802.3扩展存在兼容性问题,导致Angular内容辅助出现问题。 此问题已修复,并在0.802.4下进行了重新发布,以确保在工作空间中的内容辅助和跨异构Angular版本的导航。

## 关键修复 ##
得益于反馈,从对错误标记报告的项目级验证的更好支持到多窗口工作台,都进行了一些关键的更改。

**[1024程序员节火热开启!致敬改变世界的程序猿!](https://www.evget.com/game/index/coder)** 查看全部
作为Eclipse开发人员,您再也不必觉得自己已被排除在朋友使用Visual Studio Code的乐趣之外。 **[CodeMix](https://www.myeclipsecn.com/codemix/)**是一个Eclipse插件,使您可以直接从Eclipse访问VS Code本身和Code OSS附加扩展的各种技术。您将享受您所依赖的所有企业工具,例如Java和Spring,以及访问所有这些网络语言以及您一直想要尝试的新技术。

编码没有限制,可以使用Python,PHP和TypeScript等语言扩展,以及Vue,React和Angular等框架。

[CodeMix](https://www.myeclipsecn.com/codemix/)与基于Eclipse的IDE和工具(如MyEclipse,Spring Tools Suite和JBoss Tools)兼容,因此您可以继续在您习惯的环境中工作。

**[立即戳!购买CodeMix CI 2019.9.25有优惠!](https://www.evget.com/product/4078/license)**

具体更新内容如下:

## Angular Extension Rollback ##
Angular Language Services 0.802.3扩展存在兼容性问题,导致Angular内容辅助出现问题。 此问题已修复,并在0.802.4下进行了重新发布,以确保在工作空间中的内容辅助和跨异构Angular版本的导航。

## 关键修复 ##
得益于反馈,从对错误标记报告的项目级验证的更好支持到多窗口工作台,都进行了一些关键的更改。

**[1024程序员节火热开启!致敬改变世界的程序猿!](https://www.evget.com/game/index/coder)**

推荐!用于Productive Workflow的Eclipse快捷方式(二)

Java EE开发besy 发表了文章 • 0 个评论 • 27 次浏览 • 2019-10-09 10:09 • 来自相关话题

**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**

## 插件开发快捷方式 ##
注意:包括org.eclipse.pde.runtime插件,用于Plug-in Spy功能。

Shift + Alt + F1—Plug-in Selection Spy。

![请输入图片名称](https://image.evget.com/Conten ... 59.png)

Shift + Alt + F2—Plug-in Menu Spy。

![请输入图片名称](https://image.evget.com/Conten ... fc.png)

Shift + Alt + F3—显示资源贡献的详细信息。 显示有关哪个插件贡献了资源的详细信息,选择可以是导航器、编辑器上的任何树项。

![请输入图片名称](https://image.evget.com/Conten ... 43.png)

Ctrl + Shift + Alt + M—查找工作空间中当前选择的清单。 快速找到项目的清单文件,而无需在资源管理器中浏览项目。

Ctrl + Shift + A—打开插件工件。 列出带有清单的工作区中的所有项目,并在清单编辑器中打开所选项目的清单文件。

## Workbench快捷方式 ##
Ctrl + 3—快速访问快捷方式。 快速访问功能使您可以执行所有操作,从打开的视图到创建文件来调用命令/操作以及介于两者之间的所有操作。

![请输入图片名称](https://image.evget.com/Conten ... 05.png)

Shift + Alt + N—新向导下拉操作快捷方式。 (与基于当前参数的File>New menu相同)

Ctrl+N—使用向导创建新项目。

![请输入图片名称](https://image.evget.com/Conten ... 7c.png)

Alt + Enter—显示资源的属性,可以在编辑器/导航器中使用。

Ctrl + Shift + L—提供工作台全局键绑定的完整列表。 注意:重复按Ctrl + Shift + L来显示键的参数并修改键绑定。但是本文中的某些快捷方式将更改,请参考此链接来获取详细帮助:http://help.eclipse.org/mars/i ... s.htm。

![请输入图片名称](https://image.evget.com/Conten ... d0.png)

## 附件 ##
[eclipse-shortcuts](https://resources.cloud.genuit ... ts.pdf)—此快捷方式指南的可打印版本。

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**1024·关爱程序员!MyEclipse正版购买低至¥231!**

**还有更多现金优惠券等你来抢,手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)** 查看全部
**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**

## 插件开发快捷方式 ##
注意:包括org.eclipse.pde.runtime插件,用于Plug-in Spy功能。

Shift + Alt + F1—Plug-in Selection Spy。

![请输入图片名称](https://image.evget.com/Conten ... 59.png)

Shift + Alt + F2—Plug-in Menu Spy。

![请输入图片名称](https://image.evget.com/Conten ... fc.png)

Shift + Alt + F3—显示资源贡献的详细信息。 显示有关哪个插件贡献了资源的详细信息,选择可以是导航器、编辑器上的任何树项。

![请输入图片名称](https://image.evget.com/Conten ... 43.png)

Ctrl + Shift + Alt + M—查找工作空间中当前选择的清单。 快速找到项目的清单文件,而无需在资源管理器中浏览项目。

Ctrl + Shift + A—打开插件工件。 列出带有清单的工作区中的所有项目,并在清单编辑器中打开所选项目的清单文件。

## Workbench快捷方式 ##
Ctrl + 3—快速访问快捷方式。 快速访问功能使您可以执行所有操作,从打开的视图到创建文件来调用命令/操作以及介于两者之间的所有操作。

![请输入图片名称](https://image.evget.com/Conten ... 05.png)

Shift + Alt + N—新向导下拉操作快捷方式。 (与基于当前参数的File>New menu相同)

Ctrl+N—使用向导创建新项目。

![请输入图片名称](https://image.evget.com/Conten ... 7c.png)

Alt + Enter—显示资源的属性,可以在编辑器/导航器中使用。

Ctrl + Shift + L—提供工作台全局键绑定的完整列表。 注意:重复按Ctrl + Shift + L来显示键的参数并修改键绑定。但是本文中的某些快捷方式将更改,请参考此链接来获取详细帮助:http://help.eclipse.org/mars/i ... s.htm

![请输入图片名称](https://image.evget.com/Conten ... d0.png)

## 附件 ##
[eclipse-shortcuts](https://resources.cloud.genuit ... ts.pdf)—此快捷方式指南的可打印版本。

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**1024·关爱程序员!MyEclipse正版购买低至¥231!**

**还有更多现金优惠券等你来抢,手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)**

推荐!用于Productive Workflow的Eclipse快捷方式(一)

Java EE开发besy 发表了文章 • 0 个评论 • 27 次浏览 • 2019-09-29 10:19 • 来自相关话题

[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)

本文将为大家介绍Eclipse快捷方式列表,希望可以帮助您提供工作效率。快捷方式主要分以下几个区域:

- 导航
- 通用编辑
- Java编辑器
- 插件开发
- 工作台

## 导航 ##
**在打开的编辑器之间切换**
Ctrl + E—示打开编辑器的可过滤列表。

![请输入图片名称](https://image.evget.com/Conten ... 56.png)

Ctrl + Shift + E—显示Switch to Editor窗口。

![请输入图片名称](https://image.evget.com/Conten ... 29.png)

Ctrl + F6—显示打开的编辑器列表。

![请输入图片名称](https://image.evget.com/Conten ... e0.png)

Ctrl + Page Up和Ctrl + Page Down—从打开的文件列表中导航到上一个或下一个文件。

Ctrl + Shift + T—显示工作空间中的类列表。

Ctrl + Shift + R—显示工作空间中的资源列表。

**在编辑器中导航**

- Ctrl + , 和 Ctrl + .—在当前编辑器中的标记之间导航。
- Alt + ← 和 Alt + →—从编辑器历史记录列表转到上一个或下一个编辑位置。
- Ctrl + O-快速大纲(仅适用于部分编辑器)。
- Ctrl + J—增量查找。 注意:只需按Ctrl + J并开始输入搜索文本。 Eclipse在输入是查找并突出显示下一个匹配项,使用向上或向下箭头键跳转到下一个或上一个匹配项。
- Ctrl + L—从编辑器转到行。
- Ctrl + Q—转到上一个编辑位置。
- Ctrl + Shift + P—导航到匹配的bracket/brace。

**导航工作区**
Ctrl + F7—显示打开的视图列表,并根据需要选择视图上的资源。

![请输入图片名称](https://image.evget.com/Conten ... e7.png)

Ctrl + F8—显示打开的参数列表。

## 通用编辑快捷方式 ##

- Ctrl + Alt + G—在工作区中对当前单词执行文件搜索,并突出显示当前编辑器中出现的单词。
- Ctrl + Shift + F—格式化文件。
- Ctrl + Shift + C—单行注释/取消注释。
- Ctrl + Shift + / 和Ctrl + Shift + \—阻止评论/取消评论。
- Ctrl + D—删除整行,无论光标位于何处。 适用于大多数文件编辑器。
- Alt + Shift + R—重命名资源/选择。

## Java编辑器快捷键 ##
Ctrl + T—显示带有所选元素类型层次结构的弹出窗口。

![请输入图片名称](https://image.evget.com/Conten ... 5e.png)

F4—对于比上面的快速类型层次结构更永久的内容,请在类中的所选对象上按F4键来显示类型层次结构视图。

Ctrl + Shift + T—显示工作空间中的类列表。

Ctrl + Alt + H—方法的开放调用层次结构。

F2—在类中的选定对象上按F2键即可查看快速Javadoc,而无需将鼠标悬停在该对象上。

[请输入链接描述](https://image.evget.com/Conten ... 12.png)

F3—公开声明。 注意:仅当在“导航器/编辑器”上进行了有效选择时才有效。 对于无效选择,不执行任何操作。

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**Java开发神器——MyEclipse正版最低只要¥231!手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)**

国庆特惠:即日起登录绑定慧都小程序的用户,享受比原价更优惠的价格![点击获取优惠>>](https://chat8.live800.com/live ... Bs%3D1) 查看全部
[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)

本文将为大家介绍Eclipse快捷方式列表,希望可以帮助您提供工作效率。快捷方式主要分以下几个区域:

- 导航
- 通用编辑
- Java编辑器
- 插件开发
- 工作台

## 导航 ##
**在打开的编辑器之间切换**
Ctrl + E—示打开编辑器的可过滤列表。

![请输入图片名称](https://image.evget.com/Conten ... 56.png)

Ctrl + Shift + E—显示Switch to Editor窗口。

![请输入图片名称](https://image.evget.com/Conten ... 29.png)

Ctrl + F6—显示打开的编辑器列表。

![请输入图片名称](https://image.evget.com/Conten ... e0.png)

Ctrl + Page Up和Ctrl + Page Down—从打开的文件列表中导航到上一个或下一个文件。

Ctrl + Shift + T—显示工作空间中的类列表。

Ctrl + Shift + R—显示工作空间中的资源列表。

**在编辑器中导航**

- Ctrl + , 和 Ctrl + .—在当前编辑器中的标记之间导航。
- Alt + ← 和 Alt + →—从编辑器历史记录列表转到上一个或下一个编辑位置。
- Ctrl + O-快速大纲(仅适用于部分编辑器)。
- Ctrl + J—增量查找。 注意:只需按Ctrl + J并开始输入搜索文本。 Eclipse在输入是查找并突出显示下一个匹配项,使用向上或向下箭头键跳转到下一个或上一个匹配项。
- Ctrl + L—从编辑器转到行。
- Ctrl + Q—转到上一个编辑位置。
- Ctrl + Shift + P—导航到匹配的bracket/brace。

**导航工作区**
Ctrl + F7—显示打开的视图列表,并根据需要选择视图上的资源。

![请输入图片名称](https://image.evget.com/Conten ... e7.png)

Ctrl + F8—显示打开的参数列表。

## 通用编辑快捷方式 ##

- Ctrl + Alt + G—在工作区中对当前单词执行文件搜索,并突出显示当前编辑器中出现的单词。
- Ctrl + Shift + F—格式化文件。
- Ctrl + Shift + C—单行注释/取消注释。
- Ctrl + Shift + / 和Ctrl + Shift + \—阻止评论/取消评论。
- Ctrl + D—删除整行,无论光标位于何处。 适用于大多数文件编辑器。
- Alt + Shift + R—重命名资源/选择。

## Java编辑器快捷键 ##
Ctrl + T—显示带有所选元素类型层次结构的弹出窗口。

![请输入图片名称](https://image.evget.com/Conten ... 5e.png)

F4—对于比上面的快速类型层次结构更永久的内容,请在类中的所选对象上按F4键来显示类型层次结构视图。

Ctrl + Shift + T—显示工作空间中的类列表。

Ctrl + Alt + H—方法的开放调用层次结构。

F2—在类中的选定对象上按F2键即可查看快速Javadoc,而无需将鼠标悬停在该对象上。

[请输入链接描述](https://image.evget.com/Conten ... 12.png)

F3—公开声明。 注意:仅当在“导航器/编辑器”上进行了有效选择时才有效。 对于无效选择,不执行任何操作。

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**Java开发神器——MyEclipse正版最低只要¥231!手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)**

国庆特惠:即日起登录绑定慧都小程序的用户,享受比原价更优惠的价格![点击获取优惠>>](https://chat8.live800.com/live ... Bs%3D1)

myeclipse 32位对应64位的JDK和tomcat可以嘛?

下载|安装|配置|更新besy 回复了问题 • 2 人关注 • 1 个回复 • 18 次浏览 • 2019-09-29 10:06 • 来自相关话题

MyEclipse使用教程:使用内联搜索

Java EE开发besy 发表了文章 • 0 个评论 • 32 次浏览 • 2019-09-25 10:21 • 来自相关话题

**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**

Inline Search取代传统Eclipse查找和替换对话框,提供更搞笑、更具侵略性的搜索体验——一种不会中断开发工作流程的工具。

DevStyle作为Eclipse插件提供,也包含在CodeMix中。

## 选择内联搜索参数 ##
启用DevStyle时会自动包含内联搜索,但是您可以随时启用或禁用此功能。

1. 跳转到Window>Preferences>DevStyle>Inline Search。

2. 清除Use the Inline Search复选框来使用标准Eclipse搜索或选中复选框来使用DevStyle搜索。

![请输入图片名称](https://image.evget.com/Conten ... 6f.png)

3. 单击Apply,然后点击OK。

## 使用内联搜索和替换 ##
**搜索文本**
要使用内联搜索,请在任何文本编辑器中按Ctrl + F,然后键入要搜索的文本。 在编辑器中突出显示文本的所有实例,并显示出现次数。 您可以使用“下一个”或“上一个”箭头导航找到的文本。 您还可以使用以下选项缩小搜索范围:Case Sensitive、Match Whole Word和Regular Expression Search。

![请输入图片名称](https://image.evget.com/Conten ... 46.png)

如果在调用内联搜索之前选择了一个文本块,则搜索仅适用于选择。 要清除选择,请关闭内联搜索或在编辑器中按Ctrl + F。

![请输入图片名称](https://image.evget.com/Conten ... b1.gif)

要使用经典的Eclipse Find/Replace对话框,请在Inline Search框中按Ctrl+F。

**替换文本**
要替换文本,请单击Search框右侧的向下箭头来显示Replace选项,输入替换文本,然后选择Replace and Find Next按钮或Replace All按钮。

**输入绑定**
使用以下输入绑定参考可快速搜索文件中的文本,并可选择启动替换。

![请输入图片名称](https://image.evget.com/Conten ... 15.png)

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**Java开发神器——MyEclipse正版最低只要¥231!手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)** 查看全部
**[MyEclipse CI 2019.4.0安装包下载](https://www.myeclipsecn.com/download/)**

Inline Search取代传统Eclipse查找和替换对话框,提供更搞笑、更具侵略性的搜索体验——一种不会中断开发工作流程的工具。

DevStyle作为Eclipse插件提供,也包含在CodeMix中。

## 选择内联搜索参数 ##
启用DevStyle时会自动包含内联搜索,但是您可以随时启用或禁用此功能。

1. 跳转到Window>Preferences>DevStyle>Inline Search。

2. 清除Use the Inline Search复选框来使用标准Eclipse搜索或选中复选框来使用DevStyle搜索。

![请输入图片名称](https://image.evget.com/Conten ... 6f.png)

3. 单击Apply,然后点击OK。

## 使用内联搜索和替换 ##
**搜索文本**
要使用内联搜索,请在任何文本编辑器中按Ctrl + F,然后键入要搜索的文本。 在编辑器中突出显示文本的所有实例,并显示出现次数。 您可以使用“下一个”或“上一个”箭头导航找到的文本。 您还可以使用以下选项缩小搜索范围:Case Sensitive、Match Whole Word和Regular Expression Search。

![请输入图片名称](https://image.evget.com/Conten ... 46.png)

如果在调用内联搜索之前选择了一个文本块,则搜索仅适用于选择。 要清除选择,请关闭内联搜索或在编辑器中按Ctrl + F。

![请输入图片名称](https://image.evget.com/Conten ... b1.gif)

要使用经典的Eclipse Find/Replace对话框,请在Inline Search框中按Ctrl+F。

**替换文本**
要替换文本,请单击Search框右侧的向下箭头来显示Replace选项,输入替换文本,然后选择Replace and Find Next按钮或Replace All按钮。

**输入绑定**
使用以下输入绑定参考可快速搜索文件中的文本,并可选择启动替换。

![请输入图片名称](https://image.evget.com/Conten ... 15.png)

**MyEclipse中国(官方2): 742336981 欢迎一起进群讨论**

**Java开发神器——MyEclipse正版最低只要¥231!手慢无 [立即抢购>>>](https://www.myeclipsecn.com/buy/)**

MyEclipse本地下载全新上线啦!欢迎大家在这里留言反馈问题

下载|安装|配置|更新ChampionRoy 回复了问题 • 27 人关注 • 25 个回复 • 1385 次浏览 • 2019-09-24 16:35 • 来自相关话题

myeclipse安装问题

下载|安装|配置|更新miaoyunjun 回复了问题 • 2 人关注 • 1 个回复 • 77 次浏览 • 2019-09-22 14:58 • 来自相关话题