javascript
Spring Boot结合spring-data-jpa
Spring Boot結(jié)合spring-data-jpa進(jìn)行快速開發(fā)
1.添加依賴
<!-- spring-data-jap支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa </artifactId></dependency>2.在配置文件中,添加數(shù)據(jù)庫策略配置
spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置屬性,其主要作用是:自動創(chuàng)建、更新、驗證數(shù)據(jù)庫表結(jié)構(gòu)。該參數(shù)的幾種配置如下:
create:每次加載hibernate時都會刪除上一次的生成的表,然后根據(jù)你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執(zhí)行,這就是導(dǎo)致數(shù)據(jù)庫表數(shù)據(jù)丟失的一個重要原因。
create-drop:每次加載hibernate時根據(jù)model類生成表,但是sessionFactory一關(guān)閉,表就自動刪除。
update:最常用的屬性,第一次加載hibernate時根據(jù)model類會自動建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫),以后加載hibernate時根據(jù)model類自動更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會被馬上建立起來的,是要等應(yīng)用第一次運行起來后才會。
validate:每次加載hibernate時,驗證創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),只會和數(shù)據(jù)庫中的表進(jìn)行比較,不會創(chuàng)建新表,但是會插入新值。
這里我們設(shè)置
spring.jpa.properties.hibernate.hbm2ddl.auto=update3.respository層
public interface UserRepository extends JpaRepository<User,Long>{User findByAge(int age);User findByNameAndAge(String name, Integer age);@Query("from User u where u.name=:name")User findUser(@Param("name") String name ); }spring-data-jpa幫我們實現(xiàn)了很多dao層的基本函數(shù)
可以從JpaRepository接口中查看到這些函數(shù)。
當(dāng)然,我們也可以自定義函數(shù),例如
自動通過函數(shù)名,來執(zhí)行相應(yīng)的sql語句
還有一種方式
自己親自寫sql語句,@param(“name”)里面的參數(shù)和 :name一樣
4.控制層操作
@ResponseBody @RequestMapping(value="/getuser" ,method=RequestMethod.GET)public User getLight(@RequestParam int age) {User findByName = userRepository.findByAge(age);return findByName;} }5.訪問結(jié)果
總結(jié)
以上是生活随笔為你收集整理的Spring Boot结合spring-data-jpa的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot整合mybatis进
- 下一篇: XSS攻击与防御