最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

添加依賴

在pom文件中添加如下依賴

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

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

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

# 應(yīng)用服務(wù) WEB 訪問端口
server:
  port: 8080
# 應(yīng)用名稱
spring:
  application:
    name: HelloSpringBoot
  #數(shù)據(jù)庫配置連接
  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ù)庫的連接地址和賬號密碼

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

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

127.0.0.1表示本地

3306數(shù)據(jù)庫端口號

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

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

serverTimezone=Asia/Shanghai配置時間為北京時間

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

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

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

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

啟動項目,看到如下信息,表示數(shù)據(jù)庫連接成功,如果顯示錯誤,請查驗是否數(shù)據(jù)庫連接信息有錯誤。

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

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 '手機號',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

Java代碼部分

建實體類和Repository

jpa_user表對應(yīng)實體類User

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

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

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

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

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

做個簡單的代碼測試

往數(shù)據(jù)庫中插入數(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中定義一個方法

//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ù)據(jù),countBy前綴表示查找實體數(shù)量,deleteBy前綴為刪除數(shù)據(jù)

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

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

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

測試代碼地址:HelloSpringBoot: SpringBoot測試項目

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

相關(guān)文章

  • 基于Java并發(fā)容器ConcurrentHashMap#put方法解析

    基于Java并發(fā)容器ConcurrentHashMap#put方法解析

    下面小編就為大家?guī)硪黄贘ava并發(fā)容器ConcurrentHashMap#put方法解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java Swing中的文本框(JTextField)與文本區(qū)(JTextArea)使用實例

    Java Swing中的文本框(JTextField)與文本區(qū)(JTextArea)使用實例

    這篇文章主要介紹了Java Swing中的文本框(JTextField)與文本區(qū)(JTextArea)使用實例,Swing是一個用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包,需要的朋友可以參考下
    2014-10-10
  • Springboot重寫addInterceptors()方法配置攔截器實例

    Springboot重寫addInterceptors()方法配置攔截器實例

    這篇文章主要介紹了Springboot重寫addInterceptors()方法配置攔截器實例,spring?boot拋棄了復(fù)雜的xml配置,我們可以自定義配置類(標(biāo)注@Configuration注解的類)來實現(xiàn)WebMvcConfigurer接口,并重寫addInterceptors()方法來配置攔截器,需要的朋友可以參考下
    2023-09-09
  • Java外觀模式解讀,讓你的代碼優(yōu)雅又高效

    Java外觀模式解讀,讓你的代碼優(yōu)雅又高效

    外觀模式(Facade?Pattern)是一種常用的結(jié)構(gòu)型設(shè)計模式,它為復(fù)雜的子系統(tǒng)提供一個簡單的接口,隱藏復(fù)雜的實現(xiàn)細節(jié),本文就來講講它是如何簡化代碼,提高可維護性的
    2023-05-05
  • SpringBoot?LiteFlow引擎框架使用原理解析

    SpringBoot?LiteFlow引擎框架使用原理解析

    LiteFlow是一個輕量且強大的國產(chǎn)規(guī)則引擎框架,可用于復(fù)雜的組件化業(yè)務(wù)的編排領(lǐng)域,本文給大家介紹SpringBoot?LiteFlow引擎框架的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Java實現(xiàn)多線程斷點下載

    Java實現(xiàn)多線程斷點下載

    這篇文章主要為大家詳細介紹了Java實現(xiàn)多線程斷點下載的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 帶你一文深入認識Java?String類

    帶你一文深入認識Java?String類

    這篇文章主要介紹了帶你一文深入認識Java?String類,String 類在Java中是很常用的類,很重要的類,在后續(xù)的學(xué)習(xí)中經(jīng)常會用到,是后續(xù)學(xué)習(xí)的基礎(chǔ), 文章圍繞主題展開更多詳細內(nèi)容,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-06-06
  • Java下載文件中文文件名亂碼的解決方案(文件名包含很多%)

    Java下載文件中文文件名亂碼的解決方案(文件名包含很多%)

    Java下載文件時,文件名中文亂碼問題通常是由于編碼不正確導(dǎo)致的,使用`URLEncoder.encode(filepath, "UTF-8")`可以解決在提示下載框中正確顯示漢字文件名的問題,但在選擇直接打開時,文件名會變成亂碼,解決這個問題的方法
    2025-02-02
  • Java比較問題詳細分析

    Java比較問題詳細分析

    本篇文章主要給大家講解了Java中比較問題的相關(guān)知識,一起參考學(xué)習(xí)下吧。
    2017-12-12
  • Java?超詳細講解數(shù)據(jù)結(jié)構(gòu)中的堆的應(yīng)用

    Java?超詳細講解數(shù)據(jù)結(jié)構(gòu)中的堆的應(yīng)用

    堆首先是一個完全二叉樹,堆分為小根堆和大根堆。小根堆,所有結(jié)點的左右子節(jié)點都不小于根節(jié)點;大根堆,所有結(jié)點的左右子節(jié)點都不大于根節(jié)點。優(yōu)先級隊列(priorityQueue)底層就是一個小根堆
    2022-04-04

最新評論

新昌县| 教育| 阳西县| 竹溪县| 沂源县| 贞丰县| 山阴县| 新河县| 威宁| 齐齐哈尔市| 阜阳市| 红河县| 新闻| 天长市| 高淳县| 沛县| 迭部县| 台北市| 库尔勒市| 米泉市| 盐池县| 赤壁市| 松溪县| 平遥县| 松滋市| 寿阳县| 霍山县| 罗江县| 克拉玛依市| 天门市| 肃北| 都江堰市| 固始县| 安龙县| 潼关县| 吴桥县| 三亚市| 甘孜| 石林| 屏山县| 昂仁县|