日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Data環(huán)境搭建實現(xiàn)過程解析

瀏覽:146日期:2023-08-18 15:08:54

 本節(jié)作為主要講解Spring Data的環(huán)境搭建

JPA Spring Data :致力于減少數(shù)據訪問層(DAO)的開發(fā)量。開發(fā)者唯一要做的就是聲明持久層的接口,其他都交給Spring Data JPA來幫你完成!

使用Spring Data JPA進行持久層開發(fā)需要的四個步驟:

配置Spring 整合 JPA 在Spring配置文件中配置Spring Data,讓Spring 為聲明的接口創(chuàng)建代理對象。配置了<jpa:repositories>后,Spring 初始化容器時將會掃描base-package 指定的包目錄及其子目錄,為繼承Repository或其子接口的接口創(chuàng)建代理對象,并將代理對象注冊為SpringBean,業(yè)務層便可以通過Spring的自動封裝的特性來直接使用該對象。 聲明持久層的接口,該接口繼承Repository。Repository是一個標記型接口,它不包含任何方法,如必要,Spring Data 可實現(xiàn)Repository其他子接口,其中定義了一些常用的增刪改查,以及分頁相關的方法。 在接口中聲明需要的方法。Spring Data將根據給定的策略,來為其生成實現(xiàn)代碼。

環(huán)境搭建

 1.所需要的包

① 加入spring包

spring-aop-4.3.8.RELEASE.jar spring-aspects-4.3.8.RELEASE.jar spring-beans-4.3.8.RELEASE.jar spring-context-4.3.8.RELEASE.jar spring-core-4.3.8.RELEASE.jar spring-expression-4.3.8.RELEASE.jar spring-jdbc-4.3.8.RELEASE.jar spring-orm-4.3.8.RELEASE.jar spring-tx-4.3.8.RELEASE.jar spring-web-4.3.8.RELEASE.jar spring-webmvc-4.3.8.RELEASE.jar com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar commons-logging-1.1.1.jar

② 加入hibernate包

antlr-2.7.7.jar dom4j-1.6.1.jar hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.11.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar jandex-1.1.0.Final.jar javassist-3.18.1-GA.jar jboss-logging-3.1.3.GA.jar jboss-logging-annotations-1.2.0.Beta1.jar jboss-transaction-api_1.2_spec-1.0.0.Final.jar

③ 加jpa的包

hibernate-entitymanager-4.3.11.Final.jar

④ 加c3p0的包

c3p0-0.9.2.1.jar hibernate-c3p0-4.3.11.Final.jar mchange-commons-java-0.2.3.4.jar

⑤ 加mysql的驅動

mysql-connector-java-5.1.7-bin.jar

⑥加入springData

spring-data-commons-1.6.2.RELEASE.jar spring-data-jpa-1.4.2.RELEASE.jar

⑦加入 slf4j-api-1.6.1.jar

2.Spring Bean配置文件

applicationContext.xml

<?xml version='1.0' encoding='UTF-8'?> <beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xmlns:tx='http://www.springframework.org/schema/tx' xmlns:jpa='http://www.springframework.org/schema/data/jpa' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd'> <context:property-placeholder location='classpath:db.properties' /> <!--配置數(shù)據源 --> <bean class='com.mchange.v2.c3p0.ComboPooledDataSource'> <property name='user' value='${jdbc.user}'></property> <property name='password' value='${jdbc.password}'></property> <property name='jdbcUrl' value='${jdbc.jdbcUrl}'></property> <property name='driverClass' value='${jdbc.driverClass}'></property> </bean> <!--配置JPA的entityManagerFactory --> <bean class='org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean'> <property name='dataSource' ref='dataSource'></property> <!-- 配置JPA的實現(xiàn) --> <property name='jpaVendorAdapter'> <bean class='org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter'></bean> </property> <property name='packagesToScan' value='com.ntjr.springdata'></property> <property name='jpaProperties'> <props> <!-- 二級緩存相關 --> <!-- <prop key='hibernate.cache.region.factory_class'>org.hibernate.cache.ehcache.EhCacheRegionFactory</prop> <prop key='net.sf.ehcache.configurationResourceName'>ehcache-hibernate.xml</prop> --> <!-- 生成的數(shù)據表的列的映射策略 --> <prop key='hibernate.ejb.naming_strategy'>org.hibernate.cfg.ImprovedNamingStrategy</prop> <!-- hibernate 基本屬性 --> <prop key='hibernate.dialect'>org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key='hibernate.show_sql'>true</prop> <prop key='hibernate.format_sql'>true</prop> <prop key='hibernate.hbm2ddl.auto'>update</prop> </props> </property> </bean> <!--配置事物管理器 --> <bean class='org.springframework.orm.jpa.JpaTransactionManager'> <property name='entityManagerFactory' ref='entityManagerFactory'></property> </bean> <!-- 配置支持注解的事物 --> <tx:annotation-driven transaction-manager='transactionManager' /> <!--配置springData --> <!--base-package:掃描Repository Bean所在的package --> <jpa:repositories base-package='com.ntjr.springdata' entity-manager-factory-ref='entityManagerFactory' transaction-manager-ref='transactionManager'> </jpa:repositories> </beans>applicationContext.xml

3.數(shù)據庫持久類

Person.java

package com.ntjr.springdata; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Table(name = 'JPA_PERSONS') @Entity public class Person { private Integer id; private String lastName; private String email; private Date birth; @GeneratedValue @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLastName() { return lastName; } @Column(name = 'LAST_NAME') public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } @Override public String toString() { return 'Person [id=' + id + ', lastName=' + lastName + ', email=' + email + ', birth=' + birth + ']'; } }

4.DAO

PersonRepository.java

package com.ntjr.springdata; import org.springframework.data.repository.Repository; /** * * 1、實現(xiàn)Repository接口 * 2、通過注解的方式@RepositoryDefinition將一個bean定義為Repository接口 */ public interface PersonRepsitory extends Repository<Person, Integer> { // 根據lastName獲取對應的person Person getByLastName(String lastName); }

5.測試

SpringDataTest.java

package com.ntjr.springdata.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.ntjr.springdata.Person; import com.ntjr.springdata.PersonRepsitory; public class SpringDataTest { private ApplicationContext ctx = null; { ctx = new ClassPathXmlApplicationContext('applicationContext.xml'); } @Test public void getPersonForLastName() { PersonRepsitory personRepsitory = ctx.getBean(PersonRepsitory.class); Person person = personRepsitory.getByLastName('AA'); System.out.println(person); } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本不卡视频在线| 亚洲第一精品影视| 红桃视频国产精品| 国内一区二区三区| 精品国产亚洲一区二区三区| 精品久久国产一区| 国产一区二区三区四区五区传媒| 日本不卡高清| 国产精品99一区二区三区| 精品在线99| 狠狠爱www人成狠狠爱综合网| 99久久激情| 私拍精品福利视频在线一区| 精精国产xxxx视频在线野外| 四虎884aa成人精品最新| 欧美精选视频一区二区| 亚洲日本网址| 在线观看精品| 91欧美在线| 日韩亚洲一区在线| 国产一区日韩一区| 在线亚洲观看| 亚洲一区二区av| 日本中文字幕视频一区| 国产人成精品一区二区三| 久久99国产精品视频| 精品视频在线一区二区在线| 极品av在线| 亚洲精品一区二区在线看| 蜜桃av一区二区| 国产欧美精品久久| 91中文字幕精品永久在线| 国产精品88久久久久久| 丝袜亚洲精品中文字幕一区| 欧美一区91| 国产精品99在线观看| 日韩国产激情| 精品国产午夜| 香蕉视频亚洲一级| 91看片一区| 国产精品a级| 久久狠狠久久| 国产精品videosex极品| 亚洲一区导航| 久久免费高清| 欧美日韩亚洲在线观看| 蜜桃视频一区二区| 欧洲激情综合| 精品一区二区三区中文字幕视频| 日韩高清中文字幕一区二区| 久久精品观看| 亚洲天堂久久| 亚洲在线网站| 久久精品国产福利| 青青草91视频| 免费一级欧美片在线观看网站| 亚洲综合色婷婷在线观看| 国产精品videossex久久发布| 久久福利精品| 亚洲久久一区| 亚洲一区激情| 激情自拍一区| 日韩精品亚洲aⅴ在线影院| 天堂va蜜桃一区二区三区| 国产图片一区| 久久福利在线| 国产一区二区三区亚洲综合| 18国产精品| 国产精品普通话对白| 成人看片网站| 在线日韩电影| 一区二区小说| 综合视频一区| 日韩欧美二区| 亚洲日产国产精品| 国产精品115| 午夜久久免费观看| 国产精品久久久久久久久久齐齐 | 老司机精品在线| 欧美欧美黄在线二区| 亚洲欧洲av| 日本一区二区中文字幕| 69堂精品视频在线播放| 国产一区二区三区亚洲| 国产字幕视频一区二区| 中文无码日韩欧| 久久久久久网| 蜜桃一区二区三区在线观看| 日韩在线网址| 91综合网人人| 美女被久久久| 国产成人精品一区二区三区在线| 免费精品国产的网站免费观看| 亚洲综合中文| 五月激情久久| 日韩高清一级| 欧美1区免费| 国产欧美日韩精品高清二区综合区 | 女人天堂亚洲aⅴ在线观看| 日韩中文字幕1| 精品欧美一区二区三区在线观看| 中文字幕日本一区| 国产精品成人一区二区网站软件| 狠狠爱成人网| 国精品产品一区| 麻豆国产在线| 免费观看久久av| 国产精品多人| 伊人久久av| 日韩超碰人人爽人人做人人添| 欧美黄页在线免费观看| 欧美日韩精品一本二本三本| 老司机精品在线| 99精品视频在线| 欧美中文字幕一区二区| 免费在线观看精品| 国产欧美日本| 激情欧美日韩一区| 国产精区一区二区| 日韩国产一区二| 中文字幕免费一区二区| 日韩欧美另类一区二区| 蜜桃视频一区二区三区在线观看| 国产精品一区二区三区美女| 在线看片不卡| 亚洲三级网站| 天堂俺去俺来也www久久婷婷| 国产精品成久久久久| 久久久免费人体| 日韩精品1区2区3区| 欧美国产偷国产精品三区| 国产精品v亚洲精品v日韩精品| 欧美肉体xxxx裸体137大胆| 国产精品亲子伦av一区二区三区| 亚洲黄色影院| 美女被久久久| 成人国产精品一区二区网站| 裤袜国产欧美精品一区| 亚洲三级国产| 香蕉精品视频在线观看| 免费不卡在线观看| 欧美日韩一区二区三区不卡视频| 日韩精品诱惑一区?区三区| 久久狠狠婷婷| 香蕉久久国产| 久久久精品久久久久久96| 里番精品3d一二三区| 日韩视频久久| 精品资源在线| 日韩电影在线视频| 国产美女精品视频免费播放软件| av一区二区高清| 成人在线免费观看91| 91一区二区| 尹人成人综合网| 久久福利毛片| 欧美国产极品| 特黄毛片在线观看| 欧美日韩精品一区二区三区在线观看| 亚洲一区欧美| 福利一区二区| 日韩精品1区2区3区| 日韩三区免费| 国产suv精品一区二区四区视频| 久久国际精品| 在线综合亚洲| 国产一区二区三区黄网站| 男女激情视频一区| av综合电影网站| 日本精品国产| 亚洲一区中文| 成人羞羞在线观看网站| 日本不卡视频在线观看 | 水蜜桃精品av一区二区| 视频一区视频二区在线观看| 四虎成人av| 麻豆高清免费国产一区| 美国欧美日韩国产在线播放| 亚洲成人国产| 日韩88av| 国产日韩免费| 日本成人在线一区| 视频一区中文字幕| 性欧美69xoxoxoxo| 999久久久亚洲| 久久国产电影| 99久久婷婷| 成人啊v在线| 成人免费网站www网站高清| 成人精品久久| 日本一二区不卡| 国产精品99一区二区三| 成年男女免费视频网站不卡| 久久久91麻豆精品国产一区| 国产欧美二区| 久久精品国产网站| 久久精品三级| 97在线精品| 亚洲天堂久久| 亚洲一区不卡|