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

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、呼和浩特網(wǎng)站維護(hù)、網(wǎng)站推廣。
下面是Spring集成JPA的一個(gè)例子。
實(shí)體類MyUser,使用JPA注解實(shí)現(xiàn)到數(shù)據(jù)庫表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ù)庫中的字段,使用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)類,如下所示:
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來實(shí)現(xiàn)訪問數(shù)據(jù)庫,在Spring的配置文件中要注入一個(gè)org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean。#p#
Spring的配置文件applicationContext.xml的內(nèi)容如下所示:
|
在META-INF目錄下,還要加一個(gè)persistence.xml配置文件,如下所示:
|
接著,對(duì)增刪改查操作進(jìn)行測試,如下所示:
插入記錄:
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é)
感覺自己對(duì)JPA的理解還是不怎么深刻。
JpaTemplate提供的一些操作的方法,感覺不是很快就能理解的。
似乎使用JpaTemplate沒有使用HibernateTemplate方便,尤其是在執(zhí)行插入、修改、刪除記錄的時(shí)候。修改和刪除記錄需要先把數(shù)據(jù)庫中對(duì)應(yīng)的記錄加載出來,才能執(zhí)行修改和刪除操作。
查詢數(shù)據(jù)庫倒是很容易,因?yàn)楦静恍枰聞?wù),如果沒有事務(wù),插入、修改和刪除操作就不能實(shí)現(xiàn)。
在Spring中使用JPA,感覺代價(jià)比較大,使用起來不容易,出錯(cuò)不容易調(diào)試。
比較好的地方就是。如果數(shù)據(jù)庫中的表很多,無需編寫大量的XML文件去映射,而且只需要從POJO中就可以非常直觀地看到各個(gè)表之間的關(guān)系。
您正在閱讀: 在Spring框架中集成JPA實(shí)例
【編輯推薦】
- Spring中文手冊(cè)RC2隨Spring2.0同步全球發(fā)行
- Eclipse開發(fā): Struts 2 + Spring 2 + JPA + AJAX
- Spring 2.5 中配置 JPA
當(dāng)前題目:在Spring框架中集成JPA實(shí)例
本文來源:http://www.5511xx.com/article/ccciihs.html


咨詢
建站咨詢
