用MyEclipse JPA建立项目(三)

MyEclipse 3.15 Style——在线购买低至75折!火爆开抢>>数据库

MyEclipse最新版下载安全

本教程介绍了MyEclipse中的一些基于PA的功能。 阅读本教程时,了解JPA和实体映射如何与注释一块儿工做的基本概念将会颇有帮助。 在本教程中,您将学习如何:eclipse

  • 为JPA设置一个项目
  • 链接到数据库
  • 反向设计一个数据库表来生成实体
  • 实现建立、检索、编辑和删除功能

持续时间:30分钟ide

没有MyEclipse? 如今下载学习

4、编写应用程序

因为MyEclipse生成了大量的代码,所以您能够快速专一于编写“业务逻辑”,或者更具体地说,“实际执行的代码”。在本节中,您将编写一个带有main方法的Java类,该方法将Productline插入到数据库中,检索并更新它,而后删除。使用这段代码,您应该可以看到在本身的应用程序中使用JPA实体是多么容易,而无需编写JDBC代码或任何其余持久性代码。spa

4.1 建立一个类

1. 右键单击com.myeclipseide.jpa包,而后选择New>Class。设计

2. 在Name字段中输入RunJPA,选择Public static void main复选框,而后单击Finish。orm

生成的类对象

在生成新的类和main方法后,您须要编写代码来成功处理Productline的实例。blog

注意:下面的代码看起来很长很复杂,但这是由于咱们试图在一个代码块中显示四个不一样的示例。 若是您查看每一个操做(保存,加载,更新,删除),它们都不会包含多行代码。

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"));

注意: 将事务数据库的代码片断换成事务是一个好主意,因此若是操做失败(例如DB崩溃),那么试图在事务中发生的全部更改都会回滚到它们的原始值,而不是只有一半 工做完成。

上面的代码看起来使人望而生畏,但它背靠背作了不少简单的事情。 例如,若是您只想将新项目存储在数据库中,则只须要程序中步骤1-3的代码,这些代码将三行代码相减(减去注释)便可。 如下是每一个编号部分的细目:

  1. PRODUCTLINE表使用产品线的名称做为主键。 为了使本教程更容易遵循,咱们在字符串中定义产品线名称,并在整个代码中重复使用(建立并存储产品线,而后再检索两次)。 您能够屡次轻松输入“Men’s Shoes”,咱们认为这使得教程更易于遵循。
  2. 这将建立一个由MyEclipse生成的Productline POJO的新实例,并将插入到数据库中。 为了本教程的目的,这些值并不重要,因此咱们只是使用示例信息。
  3. 这将建立一个要使用的DAO实例。 数据库访问须要DAO,这也是由MyEclipse生成的。
  4. 这告诉DAO将新的Productline存储在数据库中。 由于你要写一些东西给数据库,因此把保存的调用包装在一个事务中。
  5. 为了确保Productline正确存储,使用步骤1中定义的ID,咱们要求DAO获取Productline,并将结果分配给一个全新的对象,以确保加载的内容来自数据库。 (咱们能够将这个值赋给newProductline,可是为了本教程的目的,咱们但愿很是明显地知道对象来自哪里以及意外地在代码中加载的实例不存在以前)。
  6. 这将打印出加载实体的值,以确保它是刚存储在数据库中的值。
  7. 这会更改刚刚加载的POJO上的值,以显示更新记录的工做方式。 而后使用DAO将更改提交回数据库。 再次,这个操做被封装在一个事务中,以确保安全地更改数据库。
  8. 就像在第5步中同样,使用步骤1中定义的ID从数据库从新加载记录,以确保更新操做有效。 POJO值将被打印出来,以确保新的描述被保存到数据库中。
  9. 这显示了如何从DB中删除记录。 由于这须要对数据库进行更改,因此此代码被封装在事务中。
  10. 与步骤8和步骤5相似,为了证实删除起做用,咱们尝试使用咱们提供的ID从数据库加载实体。 这个操做应该会失败,由于咱们已经删除了Productline。 从DAO得到结果后,将使用嵌入式IF子句打印语句以确保结果为空。

更多资讯敬请访问MyEclipse中文网>>

有用(1) 

相关文章
相关标签/搜索