摘要:教程簡(jiǎn)介本項(xiàng)目?jī)?nèi)容為教程樣例。目的是通過(guò)學(xué)習(xí)本系列教程,讀者可以從到掌握的知識(shí),并且可以運(yùn)用到項(xiàng)目中。本章將進(jìn)一步講解,結(jié)合完成數(shù)據(jù)層訪問(wèn)。創(chuàng)建控制器在下面創(chuàng)建控制器用于測(cè)試訪問(wèn)程序運(yùn)行和調(diào)試在類中,啟動(dòng)程序。
教程簡(jiǎn)介
本項(xiàng)目?jī)?nèi)容為Spring Boot教程樣例。目的是通過(guò)學(xué)習(xí)本系列教程,讀者可以從0到1掌握spring boot的知識(shí),并且可以運(yùn)用到項(xiàng)目中。如您覺(jué)得該項(xiàng)目對(duì)您有用,歡迎點(diǎn)擊收藏和點(diǎn)贊按鈕,給予支持??!教程連載中,歡迎持續(xù)關(guān)注!
環(huán)境IDE: Eclipse Neon
Java: 1.8
Spring Boot: 1.5.12
數(shù)據(jù)庫(kù):MYSQL
通過(guò)Spring Boot 教程(一):項(xiàng)目構(gòu)建,完成Restful API的學(xué)習(xí),相信大家已經(jīng)可以快速搭建一個(gè)spring boot的腳手架。
本章將進(jìn)一步講解spring boot,結(jié)合SpringDataJPA完成數(shù)據(jù)層訪問(wèn)。
SpringDataJPA是Spring Data的一個(gè)子項(xiàng)目,通過(guò)提供基于JPA的Repository極大的減少了JPA作為數(shù)據(jù)訪問(wèn)方案的代碼量,你僅僅需要編寫一個(gè)接口集成下SpringDataJPA內(nèi)部定義的接口即可完成簡(jiǎn)單的CRUD操作。
在pom.xml文件中添加如下:
org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java runtime
在applicaiton.properties文件中配置數(shù)據(jù)庫(kù)連接信息:
spring.datasource.url = jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8 spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.jpa.properties.hibernate.hbm2ddl.auto=update spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置屬性:
create:每次加載hibernate時(shí)都會(huì)刪除上一次的生成的表,然后根據(jù)你的model類再重新來(lái)生成新表,哪怕兩次沒(méi)有任何改變也要這樣執(zhí)行,這就是導(dǎo)致數(shù)據(jù)庫(kù)表數(shù)據(jù)丟失的一個(gè)重要原因。
create-drop:每次加載hibernate時(shí)根據(jù)model類生成表,但是sessionFactory一關(guān)閉,表就自動(dòng)刪除。
update:最常用的屬性,第一次加載hibernate時(shí)根據(jù)model類會(huì)自動(dòng)建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫(kù)),以后加載hibernate時(shí)根據(jù)model類自動(dòng)更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會(huì)刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會(huì)被馬上建立起來(lái)的,是要等應(yīng)用第一次運(yùn)行起來(lái)后才會(huì)。
validate:每次加載hibernate時(shí),驗(yàn)證創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu),只會(huì)和數(shù)據(jù)庫(kù)中的表進(jìn)行比較,不會(huì)創(chuàng)建新表,但是會(huì)插入新值。
創(chuàng)建包c(diǎn)om.example.demo.model,創(chuàng)建實(shí)體User
@Entity @Table(name = "T_USER") public class User implements Serializable { private static final long serialVersionUID = 2711201708013908747L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Column(name = "name", length = 255) private String name; @Column(name = "pass", length = 255) private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } }
創(chuàng)建包c(diǎn)om.example.demo.domain,創(chuàng)建UserRepository接口實(shí)現(xiàn)對(duì)該實(shí)體的數(shù)據(jù)訪問(wèn)
public interface UserRepository extends JpaRepository{ User findByName(String name); User findByNameAndPass(String name, String pass); @Query("from User u where u.name=:name") User findUser(@Param("name") String name); }
UserRepository接口繼承了JpaRepository,也就是說(shuō)UserRepository擁有了JpaRepository接口及父類接口的所有方法實(shí)現(xiàn),所以我們并不需要添加任何數(shù)據(jù)操作代碼就可以完成數(shù)據(jù)操作,JpaRepository接口對(duì)條件查詢以及保存集合數(shù)據(jù)添加了對(duì)應(yīng)的方法。
創(chuàng)建控制器在com.example.demo.api下面創(chuàng)建User控制器UserController, 用于測(cè)試web訪問(wèn)
@RestController public class UserController { @Autowired private UserRepository userDao; @RequestMapping("/saveUser") public void save(){ User user = new User(); user.setName("ajay"); user.setPass("123456"); userDao.save(user); } @RequestMapping("/delete") public void delete(String name){ User user = userDao.findByName(name); userDao.delete(user); } @RequestMapping("/updateUser") public void update(String name){ User user = userDao.findByName(name); user.setPass("123456789"); userDao.save(user); } @RequestMapping("/findByName") public User findByName(String name){ return userDao.findByName(name); } }程序運(yùn)行和調(diào)試
在Application類中,啟動(dòng)程序。瀏覽器輸入http://localhost:8080/saveUser
http://localhost:8080/findByName?name=ajay
代碼:gitee.com/shaojiepeng/SpringBootCourse
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69215.html
摘要:忽略該字段的映射省略創(chuàng)建數(shù)據(jù)訪問(wèn)層接口,需要繼承,第一個(gè)泛型參數(shù)是實(shí)體對(duì)象的名稱,第二個(gè)是主鍵類型。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出一個(gè) WEB 工程 上一篇介紹了Spring JdbcTempl...
摘要:是一個(gè)基于映射的標(biāo)準(zhǔn)協(xié)議目前最新版本是。的主要實(shí)現(xiàn)由和等完成,我們只要使用來(lái)開發(fā),無(wú)論是哪一個(gè)開發(fā)方式都是一樣的。是的一個(gè)子項(xiàng)目,它通過(guò)基于的極大地減少了作為數(shù)據(jù)訪問(wèn)方案的代碼量。源碼下載后語(yǔ)以上為使用訪問(wèn)數(shù)據(jù)庫(kù)的教程。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 如題,今天介紹 Spring Data JPA 的使用。 什么是 Spring D...
摘要:指南無(wú)論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率使用團(tuán)隊(duì)推薦的最新項(xiàng)目版本和技術(shù)。使用進(jìn)行消息傳遞了解如何將用作消息代理。安全架構(gòu)的主題指南,這些位如何組合以及它們?nèi)绾闻c交互。使用的主題指南以及如何為應(yīng)用程序創(chuàng)建容器鏡像。 Spring 指南 無(wú)論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團(tuán)隊(duì)推薦的最新Spring項(xiàng)目版本和技術(shù)。 入門指南 這些...
閱讀 1698·2021-10-14 09:43
閱讀 5866·2021-09-07 10:21
閱讀 1381·2019-08-30 15:56
閱讀 2211·2019-08-30 15:53
閱讀 1299·2019-08-30 15:44
閱讀 2068·2019-08-30 15:44
閱讀 1398·2019-08-29 17:24
閱讀 832·2019-08-29 15:19