熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Eclipse整合JPA + Struts 2 +&nbs

2013-11-23 20:27:52  來源: Java開源技術 

  Tomcat

  首先要安裝好Tomcat如果在安裝的時候遇到任何問題請查看Tomcat的安裝指南

  MySql

  安裝並配置MySQL創建一個名為quickstart的數據庫並運行下面腳本來創建Person後面在applicationContextxml裡我們將使用root數據庫用戶名和密碼記得用你自己的數據庫設置來替換它們

  CREATE TABLE quickstartPerson
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT
firstName VARCHAR() NOT NULL
lastName VARCHAR() NOT NULL
PRIMARY KEY(id))ENGINE = InnoDB;


    注上面的DDL需要保存在文件中然後在MySQL中導入我直接復制然後在查詢分析器中執行失敗創建Eclipse項目打開Eclipse我是認真的你必須打開Eclipse 點擊File > New > Project 選擇Dynamic Web Project並點擊下一步(注如果使用MyEclipse這裡不太一樣) 輸入項目名這裡我使用quickstart這個項目將要在Tomcat中運行所以我們需要為它創建應用服務器配置 在Target Runtime下面點擊New選擇Apache Tomcat並點擊下一步 輸入Tomcat的安裝路徑並選擇一下已安裝的JRE(需要) 現在你應該回到了項目創建向導並且Tomcat是你的Target Runtime點擊下一步選擇Dynamic Web ModuleJavafacets最後點finish (上面講的都是Eclipse WTP中的配置如果使用MyEclipse請自行修正)庫依賴關系你的項目應該包含srcbuildWebContent目錄我們把所有必需的jar文件放在/WebContent/WEBINF/lib目錄下請復制它們到${workspace}\quickstart\WebContent\WEBINF\lib目錄jar文件名的版本號已經被去除了!Jar From xworkjar Struts strutsapijar Struts strutscorejar Struts strutsSpringpluginjar Struts ognljar Struts freemarkerjar Struts mysqlconnectorjavajar MySql JDBC Driver springjar Sping antlrjar Hibernate Core asmjar Hibernate Core asmattrsjar Hibernate Core cglibjar Hibernate Core domjjar Hibernate Core jdbc_stdextjar Hibernate Core ehcachejar Hibernate Core hibernatejar Hibernate Core xmlapisjar Hibernate Core commonscollectionsjar Hibernate Core ejbpersistencejar Hibernate Annotations jtajar Hibernate Annotations hibernateannotationsjar Hibernate Annotations hibernateentitymanagerjar Hibernate Entity Manager javassistjar Hibernate Entity Manager jbossarchivebrowsingjar Hibernate Entity Manager 右擊項目點刷新通知Eclipse我們加入了很多的jar文件我使用Struts Spring Hibernatestrutsapijar找不到沒有也可以運行成功Hibernate Annotations和Hibernate Entity Manager需要在Hibernate的主頁上下載不包括在Core裡面另外jtajar和javassistjar在Hibernate Tools裡面同樣要下載最後上面列表並缺少一個包因為Hibernate對此有一點小小的修改你需要把Hibernate Annotations裡面的hibernatecommonsannotationsjar拷貝進來領域模型我們的領域模型只有一個簡單的Person它包含少量的實例變量創建一個新類並命名為Person然後輸入quickstartmodel作為包名 添加id(int) firstName(String)和lastName(String)三個實例變量並為它們加上setter/getter方法 為你的類加上@Entityannotationid 加上 @Id@GeneratedValue 注解 你的類如下

  Personjavapackage quickstartmodel;
import javaxpersistenceEntity;
import javaxpersistenceGeneratedValue;
import javaxpersistenceId;
@Entitypublic
class Person
{
@Id
@GeneratedValue
private Integer id;
private String lastName;
private String firstName;
public String getFirstName()
{
return firstName;
}
public void setFirstName(String firstName)
{
thisfirstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
thislastName = lastName;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
thisid = id;
}
}


    @Entity讓JPA服務Provider知道這個類可以被持久化@Id標識id域為這個類的主鍵@GeneratedValue使id域被提供者(Hibernate)自動生成類和實例變量默認都被映射到同名的表和列上詳細情況請查看JPA文檔Person service我們現在來寫對Person對象進行CRUD操作的類創建一個接口命名為PersonService包名為quickstartservice PersonServicejava

  package quickstartservice;
import javautilList;
import quickstartmodelPerson;
public interface PersonService
{
public List

  findAll();
public void save(Person person);
public void remove(int id);
public Person find(int id);
}

  @Entity讓JPA服務Provider知道這個類可以被持久化@Id標識id域為這個類的主鍵@GeneratedValue使id域被提供者(Hibernate)自動生成類和實例變量默認都被映射到同名的表和列上詳細情況請查看JPA文檔Person service我們現在來寫對Person對象進行CRUD操作的類創建一個接口命名為PersonService包名為quickstartservice PersonServicejava

   創建一個類命名為PersonServiceImpl包名為quickstartservice PersonServiceImpljava

  package quickstartservice;
import javautilList;
import javaxpersistenceEntityManager;
import javaxpersistencePersistenceContext;
import javaxpersistenceQuery;
import orgspringframeworktransactionannotationTransactional;
import quickstartmodelPerson;
@Transactional
public class PersonServiceImpl implements PersonService {
private EntityManager em;
@PersistenceContext
public void setEntityManager(EntityManager em) {
thisem = em;
}
@SuppressWarnings(unchecked)
public List

  findAll() {
Query query = getEntityManager()createQuery(select p FROM Person p);
return querygetResultList();
}
public void save(Person person) {
if (persongetId() == null) {
// new
empersist(person);
} else {
// update
rge(person);
}
}
public void remove(int id) {
Person person = find(id);
if (person != null) {
emremove(person);
}
}
private EntityManager getEntityManager() {
return em;
}
public Person find(int id) {
return emfind(Personclass id);
}
}

  @PersistenceContext會讓Spring在實例化的時候給服務注入一個EntityManager@PersistenceContext注解可以放在實例變量或者setter方法前面如果一個類被注解為@TransactionalSpring將會確保類的方法在運行在一個事務中


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28527.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.