欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的方法

 更新時(shí)間:2022年10月20日 09:31:01   作者:LO嘉嘉VE  
這篇文章主要介紹了SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的方法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

添加依賴

在pom文件中添加如下依賴

<!--添加Jpa依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--數(shù)據(jù)庫(kù)鏈接驅(qū)動(dòng)-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

配置數(shù)據(jù)庫(kù)連接 

在application.yml中添加數(shù)據(jù)庫(kù)連接配置

# 應(yīng)用服務(wù) WEB 訪問端口
server:
  port: 8080
# 應(yīng)用名稱
spring:
  application:
    name: HelloSpringBoot
  #數(shù)據(jù)庫(kù)配置連接
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/hello_jpa?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: "123456"
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    show-sql: true

配置上數(shù)據(jù)庫(kù)的連接地址和賬號(hào)密碼

url: jdbc:mysql://127.0.0.1:3306/hello_jpa??useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

數(shù)據(jù)庫(kù)連接地址

127.0.0.1表示本地

3306數(shù)據(jù)庫(kù)端口號(hào)

hello_jpa數(shù)據(jù)庫(kù)名稱

useUnicode=true&characterEncoding=utf-8配置數(shù)據(jù)庫(kù)連接使用UTF8編碼

serverTimezone=Asia/Shanghai配置時(shí)間為北京時(shí)間

username 配置數(shù)據(jù)庫(kù)名稱 root

password 配置數(shù)據(jù)庫(kù)密碼 123456

driver-class-name 配置mysql的驅(qū)動(dòng) com.mysql.cj.jdbc.Driver

show-sql配置控制臺(tái)是否打印訪問數(shù)據(jù)庫(kù)時(shí)的sql語句,配置為true,顯示sql語句,方便調(diào)試。

啟動(dòng)項(xiàng)目,看到如下信息,表示數(shù)據(jù)庫(kù)連接成功,如果顯示錯(cuò)誤,請(qǐng)查驗(yàn)是否數(shù)據(jù)庫(kù)連接信息有錯(cuò)誤。

創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)表

CREATE TABLE `jpa_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用戶名稱',
  `age` tinyint(4) NULL DEFAULT NULL COMMENT '年齡',
  `gender` tinyint(4) NULL DEFAULT NULL COMMENT '性別0女 1男',
  `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手機(jī)號(hào)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

Java代碼部分

建實(shí)體類和Repository

jpa_user表對(duì)應(yīng)實(shí)體類User

//引入lombok的getset注解,也可以不引入,自己寫下面字段的對(duì)應(yīng)getset方法
@Getter
@Setter
//注解此類為實(shí)體類
@Entity
//關(guān)聯(lián)數(shù)據(jù)庫(kù)表的名稱
@Table(name = "jpa_user")
public class User {
 
    //聲明屬性為主鍵
    @Id
    //指定主鍵生成策略
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    // @Column注解,設(shè)置屬性關(guān)聯(lián)的數(shù)據(jù)庫(kù)表字段
    // 注意:如果屬性名和表字段名相同,可以不設(shè)置,比如這個(gè)實(shí)體類對(duì)應(yīng)的所有字段就都是與數(shù)據(jù)庫(kù)表字段相同的,都可以不設(shè)置Column注解
    @Column(name = "id")
    private Long id;
 
    @Column(name = "username")
    private String username;
 
    @Column(name = "age")
    private Integer age;
 
    @Column(name = "gender")
    private Integer gender;
 
    @Column(name = "phone")
    private String phone;
 
    //駝峰命名法和數(shù)據(jù)庫(kù)中的下劃線字段是對(duì)應(yīng)的
    @Column(name = "access_card_number")
    private String accessCardNumber;
 
}

創(chuàng)建UserRepository,數(shù)據(jù)庫(kù)操作類

public interface UserRepository extends JpaRepository<User, Long> {
}

是的,這個(gè)接口沒有定義方法,只要繼承JpaRepository就可以,<User, Long>分別對(duì)應(yīng)的要連接的實(shí)體類和主鍵類型。

JpaRepository內(nèi)置好了基本的增刪查改接口及排序和分頁(yè)功能。

做個(gè)簡(jiǎn)單的代碼測(cè)試

往數(shù)據(jù)庫(kù)中插入數(shù)據(jù)

        //insert into jpa_user (access_card_number, age, gender, phone, username) values (?, ?, ?, ?, ?)
        User user = new User();
        user.setUsername("test");
        user.setPhone("13112345678");
        user.setAge(18);
        user.setGender(0);
        user.setAccessCardNumber("ic_001");
        userRepository.save(user);

根據(jù)主鍵id查找數(shù)據(jù)

//select * from jpa_user user where user.id=?
        User user = userRepository.findById(id).orElse(null);

修改id為1的數(shù)據(jù)

//update jpa_user set access_card_number=?, age=?, gender=?, phone=?, username=? where id=?
        User user = userRepository.findById(1L).orElse(null);
        user.setPhone("13212345678");
        userRepository.save(user);

刪除id為1的數(shù)據(jù)

//update jpa_user set access_card_number=?, age=?, gender=?, phone=?, username=? where id=?
        User user = userRepository.findById(1L).orElse(null);
        user.setPhone("13212345678");
        userRepository.save(user);

where語句與查找數(shù)據(jù)

在UserRepository中定義一個(gè)方法

//select * from jpa_user user where (user.age between ? and ?) and user.gender=?
 
List<User> findByAgeBetweenAndGender(int minAge, int maxAge, int gender);

在repository中我們可以自定義查找條件的方法

findBy前綴為查找實(shí)體數(shù)據(jù),countBy前綴表示查找實(shí)體數(shù)量,deleteBy前綴為刪除數(shù)據(jù)

這三種后面跟隨的都是查找條件,多條件用and或or連接

比如上面的例子就是搜索(age between minAge and maxAge) and gender = gender

搜索條件支持定向查找,模糊查找,比較查找等等。

測(cè)試代碼地址:HelloSpringBoot: SpringBoot測(cè)試項(xiàng)目

到此這篇關(guān)于SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)SpringBoot連接MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot集成Druid連接池連接MySQL8.0.11

    SpringBoot集成Druid連接池連接MySQL8.0.11

    這篇博客簡(jiǎn)單介紹spring boot集成druid連接池的簡(jiǎn)單配置和注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • SpringMVC 中HttpMessageConverter簡(jiǎn)介和Http請(qǐng)求415 的問題

    SpringMVC 中HttpMessageConverter簡(jiǎn)介和Http請(qǐng)求415 的問題

    本文介紹且記錄如何解決在SpringMVC 中遇到415 Unsupported Media Type 的問題,并且順便介紹Spring MVC的HTTP請(qǐng)求信息轉(zhuǎn)換器HttpMessageConverter
    2016-07-07
  • 使用@ConfigurationProperties注解獲取為null的解決方法

    使用@ConfigurationProperties注解獲取為null的解決方法

    在SpringBoot中,當(dāng)想需要獲取到配置文件數(shù)據(jù)時(shí),除了可以用 Spring 自帶的@Value注解外,SpringBoot還提供了一種更加方便的方式:@ConfigurationProperties,但我們?cè)谕ㄟ^通過get方法去取值一直為null,本文介紹了使用@ConfigurationProperties注解獲取為null的解決方法
    2024-09-09
  • Java Maven高級(jí)之插件開發(fā)詳解

    Java Maven高級(jí)之插件開發(fā)詳解

    這篇文章主要介紹了Maven 插件開發(fā)的詳細(xì)整理的相關(guān)資料,需要的朋友可以看下,希望能夠給你帶來幫助
    2021-09-09
  • java基礎(chǔ)javeSE程序邏輯控制語法

    java基礎(chǔ)javeSE程序邏輯控制語法

    主要講解Java中程序的邏輯控制語句包括 Java中的輸入輸出方式 順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)等,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解

    Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解

    這篇文章主要介紹了Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗(yàn)注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 如何解決redisTemplate注入為空問題

    如何解決redisTemplate注入為空問題

    這篇文章主要介紹了如何解決redisTemplate注入為空問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • PowerJob的TransportServiceAware工作流程源碼解讀

    PowerJob的TransportServiceAware工作流程源碼解讀

    這篇文章主要介紹了PowerJob的TransportServiceAware工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案

    sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案

    今天小編就為大家分享一篇關(guān)于sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn)

    springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn)

    這篇文章主要介紹了springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論