新聞中心
Hibernate 3.2支持JPA注解,Spring集成JPA是可選的。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、呼和浩特網(wǎng)站維護(hù)、網(wǎng)站推廣。
下面是Spring集成JPA的一個(gè)例子。
實(shí)體類(lèi)MyUser,使用JPA注解實(shí)現(xiàn)到數(shù)據(jù)庫(kù)表myUser的映射,如下所示:
package org.shirdrn.entity; import java.util.Date; import javax.persistence.Column; @Entity private Long id; @Id public void setId(Long id) {
@Column(name="userName") public void setUserName(String userName) {
@Column(name="password") public void setPassword(String password) {
@Column(name="gender") public void setGender(String gender) {
@Column(name="age") public void setAge(Integer age) {
@Column(name="addr") public void setAddr(String addr) {
@Column(name="email") public void setEmail(String email) {
@Transient public void setBirthYear(Integer age) {
|
其中,birthYear不是數(shù)據(jù)庫(kù)中的字段,使用JPA的@Transient注解,在映射的時(shí)候,會(huì)忽略掉該成員。
持久層DAO接口如下:
package org.shirdrn.dao; import java.util.List; import org.shirdrn.entity.MyUser; @Transactional |
這里,使用了JPA注解,聲明事務(wù)。
DAO實(shí)現(xiàn)類(lèi),如下所示:
package org.shirdrn.dao.impl; import java.util.List; import org.shirdrn.dao.MyUserDAO; public class MyUserDAOImpl extends JpaDaoSupport implements MyUserDAO {
public void createMyUser(MyUser myUser) {
public void deleteMyUser(MyUser myUser) {
public void updateMyUser(MyUser myUser) {
@SuppressWarnings("unchecked")
@SuppressWarnings("unchecked")
|
因?yàn)槔^承了JpaDaoSupport,索引需要獲取一個(gè)JpaTemplate來(lái)實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù),在Spring的配置文件中要注入一個(gè)org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean。#p#
Spring的配置文件applicationContext.xml的內(nèi)容如下所示:
|
在META-INF目錄下,還要加一個(gè)persistence.xml配置文件,如下所示:
|
接著,對(duì)增刪改查操作進(jìn)行測(cè)試,如下所示:
插入記錄:
packageorg.shirdrn.test; importorg.shirdrn.dao.MyUserDAO; publicclassTestCreateMyUser{
publicstaticvoidmain(String[]args){
|
刪除記錄:
packageorg.shirdrn.test; importorg.shirdrn.dao.MyUserDAO; publicclassTestDeleteMyUser{
|
修改記錄:
packageorg.shirdrn.test; importorg.shirdrn.dao.MyUserDAO; publicclassTestUpdateMyUser{ |
查詢記錄:
packageorg.shirdrn.test; importjava.util.List; importorg.shirdrn.dao.MyUserDAO; publicclassTestQueryAllMyUser{
|
心得總結(jié)
感覺(jué)自己對(duì)JPA的理解還是不怎么深刻。
JpaTemplate提供的一些操作的方法,感覺(jué)不是很快就能理解的。
似乎使用JpaTemplate沒(méi)有使用HibernateTemplate方便,尤其是在執(zhí)行插入、修改、刪除記錄的時(shí)候。修改和刪除記錄需要先把數(shù)據(jù)庫(kù)中對(duì)應(yīng)的記錄加載出來(lái),才能執(zhí)行修改和刪除操作。
查詢數(shù)據(jù)庫(kù)倒是很容易,因?yàn)楦静恍枰聞?wù),如果沒(méi)有事務(wù),插入、修改和刪除操作就不能實(shí)現(xiàn)。
在Spring中使用JPA,感覺(jué)代價(jià)比較大,使用起來(lái)不容易,出錯(cuò)不容易調(diào)試。
比較好的地方就是。如果數(shù)據(jù)庫(kù)中的表很多,無(wú)需編寫(xiě)大量的XML文件去映射,而且只需要從POJO中就可以非常直觀地看到各個(gè)表之間的關(guān)系。
您正在閱讀: 在Spring框架中集成JPA實(shí)例
【編輯推薦】
- Spring中文手冊(cè)RC2隨Spring2.0同步全球發(fā)行
- Eclipse開(kāi)發(fā): Struts 2 + Spring 2 + JPA + AJAX
- Spring 2.5 中配置 JPA
本文標(biāo)題:在Spring框架中集成JPA實(shí)例
文章源于:http://m.fisionsoft.com.cn/article/ccciihs.html


咨詢
建站咨詢
