国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Data JPA 學(xué)習(xí)筆記

這篇具有很好參考價值的文章主要介紹了Spring Data JPA 學(xué)習(xí)筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring Data JPA 學(xué)習(xí)筆記

Spring Data JPA:
Spring Data JPA 是 spring data 項目下的一個模塊。提供了一套基于 JPA標(biāo)準(zhǔn)操作數(shù)據(jù)庫的簡化方案。底層默認(rèn)的是依賴 Hibernate JPA 來實現(xiàn)的。
Spring Data JPA 的技術(shù)特點:
我們只需要定義接口并集成 Spring Data JPA 中所提供的接口就可以了。不需要編寫接口實現(xiàn)類。

一、 創(chuàng)建SpringDataJPA項目

第一步:pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--springboot啟動-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.9</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.sunsky</groupId>
    <artifactId>mybatis5_plus</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis5_plus</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>8</java.version>
    </properties>

    <dependencies>

        <!--mysql連接依賴-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>

        <!--實體類的注解-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--測試類的依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--進(jìn)行SpringDataJPA依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.4.2</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

第二步:pojo包下,寫User實體類

@Entity 標(biāo)注是一個實體類,實體類中的每一個屬性都對應(yīng)表中的一列。

@Table(name = “User”) 這個注解用于指定實體類對應(yīng)的數(shù)據(jù)庫表名。(但首字母會小寫)

@Data:這個注解是Lombok庫提供的,用于自動生成實體類的getter和setter方法、構(gòu)造函數(shù)、equals、canEqual、hashCode、toString方法。使用@Data注解可以簡化實體類的代碼,使實體類更加簡潔。

package com.sunsky.jpa_project.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * @className: ${大數(shù)據(jù)學(xué)習(xí)}.
 * @description: 用戶實體類
 * @Theme:
 * @author:xgh
 * @create-day: 2024-03-05 10:12
 */

@Entity
@Table(name = "User")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    @Id
    private Integer id;

    private String name;

    private Integer age;

    private String email;

    private String phone;
}

第三步:dao包下的UserDao接口,進(jìn)行業(yè)務(wù)的接口規(guī)范

UserDaoj接口繼承了CrudRepository JpaRepository所有的方法 增刪查改就不用自己

package com.sunsky.jpa_project.dao;


import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import com.sunsky.jpa_project.pojo.User;

import java.util.List;

/**
 * @className: ${大數(shù)據(jù)學(xué)習(xí)}.
 * @description: dao層繼承了CrudRepository  JpaRepository所有的方法 增刪查改就不用自己寫
 * @Theme:
 * @author:xgh
 * @create-day: 2024-03-05 10:40
 */
@Repository
public interface UserDao extends CrudRepository<User,Integer>, JpaRepository<User,Integer> {

    @Query("from User") //使用對象查詢
    List<User> getAlls();

    //使用sql查詢
    @Query(value = "select * from user where name=? and age=?",nativeQuery = true)
    List<User> getAlls(String name,Integer age);

    @Query
    List<User> findByNameAndAge(String name,Integer age);
}

第四步:測試類JpaProjectApplicationTests

基于@Query 注解的查詢

該注解是Spring Data JPA 庫中的一個功能,它允許開發(fā)者自定義 JPA 查詢語句。通過在 Repository 接口中使用 @Query 注解,你可以直接在接口的方法上編寫 JPA 查詢語句,而不需要寫實際的 SQL 語句。文章來源地址http://www.zghlxwxcb.cn/news/detail-845043.html

package com.sunsky.jpa_project;

import com.sunsky.jpa_project.dao.UserDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import com.sunsky.jpa_project.pojo.User;

import java.util.ArrayList;
import java.util.List;

@SpringBootTest
class JpaProjectApplicationTests {

    @Autowired
    UserDao userDao;

    @Test
    void contextLoads() {
        List<User> users = userDao.findAll();
        System.out.println(users);

        for (User user : users) {
            System.out.println(user);
        }

    }

    @Test
    void save(){

        User user = new User(8,"斗破蒼穹",159,"wer@123","120");
        User user1 = new User(7,"斗破蒼穹",159,"wer@123","120");
        User save = userDao.save(user);
        userDao.save(user1);
        System.out.println("存儲成功");
    }



    @Test
    void delete() {
       List<Integer> ids = new ArrayList<>();
       ids.add(7);
       ids.add(8);
       userDao.deleteAllById(ids);
        System.out.println("刪除成功");
    }

    // 通過id存值的時候,相當(dāng)于更新操作
    @Test
    void update(){
        User user = new User(1,"李四",20,"234@234","11069");
        userDao.save(user);
    }

    // 使用對象查詢
    @Test
    void zdy() {
        List<User> alls = userDao.getAlls();
        for (User all : alls) {
            System.out.println(all);
        }
    }

    //使用sql查詢
    @Test
    void zdy2() {
        List<User> alls = userDao.getAlls();
        for (User all : alls) {
            System.out.println(all);
        }
    }

    // 使用關(guān)鍵字
    @Test
    void zdy3(){
        List<User> alls = userDao.findByNameAndAge("李四",20);
        for (User all:alls
             ) {
            System.out.println(all);

        }
    }
}

到了這里,關(guān)于Spring Data JPA 學(xué)習(xí)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Data JPA的@Entity注解

    ?rulesCouponTypeConverter.java ?entity/CouponTemplate.java Spring JPA 包的標(biāo)準(zhǔn)注解,對數(shù)據(jù)庫字段進(jìn)行了映射,我挑幾個關(guān)鍵注解說道一下。 1、Entity:聲明了“數(shù)據(jù)庫實體”對象,它是數(shù)據(jù)庫 Table 在程序中的映射對象; 2、Table:指定了 CouponTemplate 對應(yīng)的數(shù)據(jù)庫表的名稱; 3、ID/Generat

    2024年02月11日
    瀏覽(26)
  • Spring Boot 篇四: Spring Data JPA使用SQL Server

    Spring Boot 篇四: Spring Data JPA使用SQL Server

    本篇介紹篇一至篇三中用到的JPA鏈接SQL Server的具體情況以及實戰(zhàn)過程中可能遇到的問題。 具體的下載和安裝教程,請參閱微軟SQL Server官網(wǎng); SQL Server Express 是免費的,并且配套的SQL Server Management Studio也是可以用的。 呃,當(dāng)然,使用Docker來運行SQL Server是另外一條路徑。具體

    2024年02月05日
    瀏覽(17)
  • 【Spring Boot】SpringBoot和數(shù)據(jù)庫交互: 使用Spring Data JPA

    在現(xiàn)代應(yīng)用程序的開發(fā)中,數(shù)據(jù)是核心部分。為了能夠持久化、檢索、更新和刪除數(shù)據(jù),應(yīng)用程序需要與數(shù)據(jù)庫進(jìn)行交互。 1.1 為什么需要數(shù)據(jù)庫交互 數(shù)據(jù)持久化 :當(dāng)你關(guān)閉應(yīng)用程序或者服務(wù)器時,你仍希望數(shù)據(jù)能夠保存。數(shù)據(jù)庫提供了一個持久的存儲方案,使得數(shù)據(jù)在關(guān)閉

    2024年02月12日
    瀏覽(28)
  • 金九銀十面試題之《Spring Data JPA、Spring MVC、AOP》

    ?????? 辛苦牛,掌握主流技術(shù)棧,包括前端后端,已經(jīng)7年時間,曾在稅務(wù)機(jī)關(guān)從事開發(fā)工作,目前在國企任職。希望通過自己的不斷分享,可以幫助各位想或者已經(jīng)走在這條路上的朋友一定的幫助 ??金九銀十馬上就要來啦,各位小伙伴們有計劃跳槽的要開始準(zhǔn)備了,博

    2024年02月15日
    瀏覽(96)
  • 如何使用Spring Data JPA簡化MySQL數(shù)據(jù)訪問

    本篇文章是 “一起學(xué)習(xí)mysql” 系列的第五篇文章,本篇文章我們學(xué)習(xí)一下Spring Data JPA的使用,在開始學(xué)習(xí)器,我們先來了解一下什么是JPA。 JPA的全稱是Java Persistence API,是J2EE中的一條規(guī)范,它標(biāo)準(zhǔn)化了數(shù)據(jù)持久化API。在上一篇文章中,我們了解了如何使用MyBatis進(jìn)行MySQL數(shù)據(jù)

    2024年02月15日
    瀏覽(27)
  • Spring Data JPA之自動創(chuàng)建數(shù)據(jù)庫表

    Spring Data JPA之自動創(chuàng)建數(shù)據(jù)庫表

    由于在項目中使用到了Spring Data JPA(Java Persistent API)進(jìn)行項目開發(fā),并且自己對JPA比較感興趣想進(jìn)行學(xué)習(xí)和了解。首先學(xué)習(xí)和了解的是JPA自動創(chuàng)建數(shù)據(jù)庫表,通過JPA能夠讓軟件工程師們不用再去手動創(chuàng)建數(shù)據(jù)表,能夠減輕軟件工程師們的工作量。 通過本篇博客可以實現(xiàn)使用

    2024年02月05日
    瀏覽(27)
  • Jpa與Druid線程池及Spring Boot整合(一): spring-boot-starter-data-jpa 搭建持久層

    Jpa與Druid線程池及Spring Boot整合(一): spring-boot-starter-data-jpa 搭建持久層

    ? ? ? ? ? ? ? ? ? ? ? Jpa與Druid線程池及Spring Boot整合(一) Jpa與Druid線程池及Spring Boot整合(二):幾個坑 附錄官網(wǎng)文檔:core.domain-events域事件 docker實戰(zhàn)(一):centos7 yum安裝docker docker實戰(zhàn)(二):基礎(chǔ)命令篇 docker實戰(zhàn)(三):docker網(wǎng)絡(luò)模式(超詳細(xì)) docker實戰(zhàn)(四):docker架構(gòu)原理 docker實戰(zhàn)(五

    2024年02月13日
    瀏覽(34)
  • 【自我提升】Spring Data JPA之Specification動態(tài)查詢詳解

    【自我提升】Spring Data JPA之Specification動態(tài)查詢詳解

    寫在前面:刷完Spring Data JPA的課后,發(fā)現(xiàn)Specification動態(tài)查詢還挺有意思的,還應(yīng)用到了規(guī)約設(shè)計模式,在此記錄下學(xué)習(xí)過程和見解。 目錄 一、應(yīng)用場景 二、源碼解析 三、規(guī)約模式 四、實際應(yīng)用 1. 簡介 ????????有時我們在查詢某個實體的時候,給定的條件是不固定的,

    2024年02月07日
    瀏覽(21)
  • 【單元測試】Spring Data JPA + H2 測試DAO層

    Springboot 2.7.8 h2 2.1.214 引入springboot parent pom 點擊查看代碼 引入junit , springboot-test, spring-data-jpa, H2 點擊查看代碼 H2是一款內(nèi)存數(shù)據(jù)庫,可以配合單測測試數(shù)據(jù)層。實現(xiàn)原理是將依賴的三方數(shù)據(jù)庫通過內(nèi)存的方式進(jìn)行mock。其中H2數(shù)據(jù)庫的數(shù)據(jù)表結(jié)構(gòu)以及數(shù)據(jù)可以通過sql腳本文件初

    2024年02月07日
    瀏覽(31)
  • Jpa與Druid線程池及Spring Boot整合(二): spring-boot-starter-data-jpa 踏坑異常處理方案

    Jpa與Druid線程池及Spring Boot整合(二): spring-boot-starter-data-jpa 踏坑異常處理方案

    ? ? ? ? ? ? ? ? ? ?? docker實戰(zhàn)(一):centos7 yum安裝docker docker實戰(zhàn)(二):基礎(chǔ)命令篇 docker實戰(zhàn)(三):docker網(wǎng)絡(luò)模式(超詳細(xì)) docker實戰(zhàn)(四):docker架構(gòu)原理 docker實戰(zhàn)(五):docker鏡像及倉庫配置 docker實戰(zhàn)(六):docker 網(wǎng)絡(luò)及數(shù)據(jù)卷設(shè)置 docker實戰(zhàn)(七):docker 性質(zhì)及版本選擇 認(rèn)知升維: 道、法、

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包