用Annotation而非xml文件實現(xiàn)Sping Data JPA的具體步驟

這篇教程主要參考的是https://www.petrikainulainen.net上的一篇文章,用自己的方式實現(xiàn)了一下。之所以特意將步驟帖出來,一方面溫故而知新,另一方面也可以避免將來重復造輪子。

1、首先是新建一個最最普通的maven工程,quickstart版本的就可以。然后引入最基本的依賴:

最少的依賴只要四個,不能再少了

2、由于我們是使用注解實現(xiàn)配置,所以就新建一個PersistenceContext.java來代替通常的application-context.xml:

@Configuration //聲明配置類

@ComponentScan(basePackages ="com.em.repository") //將包下的類生成Bean

@PropertySource("application.properties") //掃描配置文件,配置文件主要是連接數(shù)據(jù)庫的信息以及Hibernate的相關(guān)配置。不過要注意一點,IDEA中配置文件前是不要加“classpath:”的,而Eclipse中則是需要。

@EnableTransactionManagement //開啟SpringData的事務(wù)控制

@EnableJpaRepositories(basePackages ="com.em.repository", entityManagerFactoryRef ="entityManagerFactoryBean") //將指定包下的類作為SpringData的實現(xiàn)類,注意entityManagerFactoryRef ="entityManagerFactoryBean"一定要類后面的Bean name一一對應(yīng)

public classPersistenceContext {

? ? ......

}

application.properties配置文件的內(nèi)容

在PersistenceContext中先把配置文件的值導入到private的字段中:

注意這里也可以用Environment來實現(xiàn),代碼會更精簡

還是繼續(xù)看PersistenceContext配置類,接下來我們要指定DataSource:

然后指定EntityManagerFactoryBean來配置DataSource和Hibernate:

注意這里的entityManagerFactoryBean一定要和類名前EnableJpaRepositories注解的地方一致。

最后配一下JPA的事務(wù)處理器就OK了:

3、PersistenceContext配置完后,創(chuàng)建一個Employee的實體類:

4、創(chuàng)建EmployeeRepository類,該類里聲明了我們對數(shù)據(jù)庫CRUD的實現(xiàn):

不過這里有一個坑,不能用@RepositoryDefinition(domainClass = EmployeeRepository.class, idClass = Integer.class)來注解,會報Not an managed Type這個錯。

正確的方式是這樣的:

注意要照著紅框的地方寫

5、創(chuàng)建Main方法,只有三行:

6、我們的數(shù)據(jù)庫和表是這樣的:

7、接著運行Main函數(shù),看看結(jié)果:

結(jié)果正確

8、在Main函數(shù)中補充相應(yīng)的insert和update方法:

數(shù)據(jù)庫已經(jīng)成功插入和變更

至此SpringData一個最簡單的查詢、新增和修改的操作已經(jīng)完成。最難的還是第一次,第一次成功后,后面無非就是相似的復制和黏貼了。自己動手實現(xiàn)一遍遠勝于看十遍教程。今天就到這兒~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容