亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Spring Boot 教程(二):使用Spring Boot JPA完成數(shù)據(jù)層訪問(wèn)

DevWiki / 2908人閱讀

摘要:教程簡(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

本章簡(jiǎn)介

通過(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)建實(shí)體和數(shù)據(jù)訪問(wèn)接口

創(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

相關(guān)文章

  • 一起來(lái)學(xué)SpringBoot | 第六篇:整合SpringDataJpa

    摘要:忽略該字段的映射省略創(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...

    Dionysus_go 評(píng)論0 收藏0
  • SpringBoot 實(shí)戰(zhàn) (八) | 使用 Spring Data JPA 訪問(wèn) Mysql 數(shù)據(jù)

    摘要:是一個(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...

    hedzr 評(píng)論0 收藏0
  • Spring 指南(目錄)

    摘要:指南無(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ù)。 入門指南 這些...

    only_do 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<