摘要:教程簡介本項目內容為教程樣例。目的是通過學習本系列教程,讀者可以從到掌握的知識,并且可以運用到項目中。本章將進一步講解,結合完成數據層訪問。創建控制器在下面創建控制器用于測試訪問程序運行和調試在類中,啟動程序。
教程簡介
本項目內容為Spring Boot教程樣例。目的是通過學習本系列教程,讀者可以從0到1掌握spring boot的知識,并且可以運用到項目中。如您覺得該項目對您有用,歡迎點擊收藏和點贊按鈕,給予支持!!教程連載中,歡迎持續關注!
環境IDE: Eclipse Neon
Java: 1.8
Spring Boot: 1.5.12
數據庫:MYSQL
通過Spring Boot 教程(一):項目構建,完成Restful API的學習,相信大家已經可以快速搭建一個spring boot的腳手架。
本章將進一步講解spring boot,結合SpringDataJPA完成數據層訪問。
SpringDataJPA是Spring Data的一個子項目,通過提供基于JPA的Repository極大的減少了JPA作為數據訪問方案的代碼量,你僅僅需要編寫一個接口集成下SpringDataJPA內部定義的接口即可完成簡單的CRUD操作。
在pom.xml文件中添加如下:
org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java runtime
在applicaiton.properties文件中配置數據庫連接信息:
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時都會刪除上一次的生成的表,然后根據你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是導致數據庫表數據丟失的一個重要原因。
create-drop:每次加載hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。
update:最常用的屬性,第一次加載hibernate時根據model類會自動建立起表的結構(前提是先建立好數據庫),以后加載hibernate時根據model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到服務器后,表結構是不會被馬上建立起來的,是要等應用第一次運行起來后才會。
validate:每次加載hibernate時,驗證創建數據庫表結構,只會和數據庫中的表進行比較,不會創建新表,但是會插入新值。
創建包com.example.demo.model,創建實體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; } }
創建包com.example.demo.domain,創建UserRepository接口實現對該實體的數據訪問
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,也就是說UserRepository擁有了JpaRepository接口及父類接口的所有方法實現,所以我們并不需要添加任何數據操作代碼就可以完成數據操作,JpaRepository接口對條件查詢以及保存集合數據添加了對應的方法。
創建控制器在com.example.demo.api下面創建User控制器UserController, 用于測試web訪問
@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); } }程序運行和調試
在Application類中,啟動程序。瀏覽器輸入http://localhost:8080/saveUser
http://localhost:8080/findByName?name=ajay
代碼:gitee.com/shaojiepeng/SpringBootCourse
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69215.html
摘要:忽略該字段的映射省略創建數據訪問層接口,需要繼承,第一個泛型參數是實體對象的名稱,第二個是主鍵類型。 SpringBoot 是為了簡化 Spring 應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規范,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 上一篇介紹了Spring JdbcTempl...
摘要:是一個基于映射的標準協議目前最新版本是。的主要實現由和等完成,我們只要使用來開發,無論是哪一個開發方式都是一樣的。是的一個子項目,它通過基于的極大地減少了作為數據訪問方案的代碼量。源碼下載后語以上為使用訪問數據庫的教程。 微信公眾號:一個優秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天介紹 Spring Data JPA 的使用。 什么是 Spring D...
摘要:指南無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術。使用進行消息傳遞了解如何將用作消息代理。安全架構的主題指南,這些位如何組合以及它們如何與交互。使用的主題指南以及如何為應用程序創建容器鏡像。 Spring 指南 無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術。 入門指南 這些...
閱讀 1626·2021-10-14 09:43
閱讀 5503·2021-09-07 10:21
閱讀 1275·2019-08-30 15:56
閱讀 2124·2019-08-30 15:53
閱讀 1231·2019-08-30 15:44
閱讀 2010·2019-08-30 15:44
閱讀 1320·2019-08-29 17:24
閱讀 752·2019-08-29 15:19