SpringBoot整合JPA

添加依賴

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

實體類

package cn.clboy.springbootjpa.entity;import javax.persistence.*;@Entity //使用JPA注解配置映射關系,告訴JPA這是一個實體類(和數據表映射的類)
@Table(name = "tbl_user")   //@Table來指定和哪個數據表對應;如果省略默認表名類名小寫;
public class User {@Id //這是一個主鍵@GeneratedValue(strategy = GenerationType.IDENTITY) //自增主鍵private Integer id;@Column(name = "last_name",length = 50) //這是和數據表對應的一個列private String lastName;@Column //省略默認列名就是屬性名private String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}

DAO

package cn.clboy.springbootjpa.repository;import cn.clboy.springbootjpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;/*** 繼承JpaRepository來完成對數據庫的操作* 泛型是(實體類,主鍵)*/
public interface UserRepository extends JpaRepository<User, Integer> {}

配置文件

spring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.DriverinitialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true#   配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用于防火墻filters: stat,wallmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

添加用戶

  • http://localhost:8080/user?lastName=zhangsan&email=123456@qq.com
  • http://localhost:8080/user?lastName=lisi&email=78215646@qq.com
  • http://localhost:8080/user/1,拋出500錯誤,原因是getOne方法使用的懶加載,獲取到的只是代理對象,轉換為json時會報錯

解決懶加載

  1. 關閉懶加載,在實體類上加上@Proxy(lazy = false)注解
    @Entity
    @Table(name = "tbl_user")
    @Proxy(lazy = false)
    public class User
    
  2. 轉Json的時候忽略hibernateLazyInitializer和handler屬性
    @Entity
    @Table(name = "tbl_user")
    @JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})
    public class User 

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447352.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為什么說選擇正確的編程語言很重要,以及如何正確的選擇

幾個月前&#xff0c;一個同事問我&#xff0c;應該如何選擇編程語言&#xff0c;或者有沒有什么固定的選擇模式&#xff0c;當時我便打算寫點什么。上周在硅谷開會&#xff0c;這我是第一次跟“hack3rs”的創業狂以及技術狂們打交道。我學會了很多前所未聞的臟話&#xff0c;也…

細數開源歷史上的十個重大事件

開放源碼&#xff08;開源&#xff09;的精神在于使用者可以使用、復制、散布、研究和改進軟件。這可以追溯到20世紀60年代&#xff0c;至今已有半個世紀了。雖然下面所列舉的不都是專門的開源產品&#xff0c;但還是在開源發展的進程中有著巨大的影響。開放源碼&#xff08;開…

科研必備學士搜索引擎推薦

綜合性學術搜索引擎 中國知網萬方數據百度學術谷歌學術谷歌學術鏡像Web of ScienceEiVillage2EIsevier電子期刊SpringerSemanticScholar 圖片文獻檢索方法 CNKI 期刊查詢 DOAJSocolarOpenDOAROALIB開放存取圖書館 碩博論文搜索下載 上海交大鏡像網站歐洲學位論文庫 國外電子…

如何寫一篇論文

文獻綜述的地位 體現了學術研究的繼承性 文獻綜述的寫作是由學術研究的繼承性決定的&#xff0c;因為繼承是創新的基礎和前提。文獻綜述部分要澄清所研究問題“從哪里來&#xff0c;到哪里去” 。這部分主要是繼承&#xff0c;是梳理前人的成果并找出其內在的邏輯關系和演進的規…

深度卷積神經網絡CNNs的多GPU并行框架及其應用

摘要&#xff1a;本文是騰訊深度學習系列文章之一&#xff0c;主要聚焦于騰訊深度學習平臺&#xff08;Tencent Deep Learning Platform&#xff09;中深度卷積神經網絡Deep CNNs的多GPU模型并行和數據并行框架。 【編者按】深度卷積神經網絡有著廣泛的應用場景&#xff0c;本…

如果誤刪谷歌瀏覽器的書簽,怎么恢復

如果是Mac用戶&#xff0c;command和z一直恢復就可以 同理&#xff0c;windows用戶&#xff0c;也可以使用撤銷鍵&#xff0c;ctrlz即可

55分鐘學會正則表達式

正則表達式是一種查找以及字符串替換操作。正則表達式在文本編輯器中廣泛使用&#xff0c;比如正則表達式被用于&#xff1a; 檢查文本中是否含有指定的特征詞找出文中匹配特征詞的位置從文本中提取信息&#xff0c;比如&#xff1a;字符串的子串修改文本 與文本編輯器相似&a…

線程安全和對應的核心概念

線程安全 線程安全的概念&#xff1a;當多個線程訪問某一個類&#xff08;對象和方法&#xff09;時&#xff0c;這個類始終都能表現出正確的行為&#xff0c;那么這個類&#xff08;對象或者方法&#xff09;就是線程安全的synchronized&#xff1a;可以在任意對象及方法上加…

JDK Unsafe類的使用與CAS原子特性

JDK Unsafe類的使用與CAS原子特性 Java.util.concurrent.atomic包&#xff0c;其中包含了大量使用到Unsafe這個類Java不能直接訪問操作系統的底層&#xff0c;而是通過本地方法來訪問。 Unsafe類提供了硬件級別的原子操作&#xff0c;主要提供了以下功能 內存操作字段的定位和…

寫軟件不是造汽車

寫軟件和做其他事情是不一樣的。當我們制造別的東西的時候——像汽車、玩具、椅子、畫作、甚至包括數字產品如平面圖片和3D模型——我們做出來的成品就是最終的結果。而開發軟件則不是&#xff0c;我們做出來的產品永遠不可能有最終的結果——我們需要向計算機解釋如何根據任意…

線程池核心概述

線程池核心概述 Executors工廠類使用 Executors工廠類底層源碼分析詳解 ThreadPoolExecutor自定義線程池 ThreadPoolExecutor拒絕策略詳解 計算機密集型與IO密集型詳解 如何正確的使用線程池…

網站盈利的10種方式

如果你有自己的網站&#xff0c;而且已經有了不少的流量&#xff0c;你肯定會開始考慮如何通過這個網站來掙一些錢。 在這篇文章中&#xff0c;我會向大家介紹網站最常見的10種盈利方式。 1.按點擊付費廣告 在網站上展示一個按點擊付費的廣告橫幅是最簡單的盈利方式&#xff…

程序員如何創業?

摘要&#xff1a;工作機會減少&#xff0c;讀大學也不是保障。大公司亦不再是構筑職業生涯的安全港灣。透過媒體的鏡頭&#xff0c;創業似乎成了沙漠中唯一的綠洲。然而關于創業&#xff0c;或許少有人給你建議&#xff0c;這里所列出的一些因素都是你可以考慮的。 如果你的年…

Redis數據的類型

Redis一共分為五種基本數據類型&#xff1a;String、Hash、List、Set、Zset. string 內部編碼有三種&#xff0c;raw&#xff0c;embstr&#xff0c;int String 是二進制的。可以存儲序列化對象&#xff0c;圖片&#xff0c;字符串&#xff0c;數值等 set和get方法 &#x…

Redis高級命令與特性以及單點模式的介紹

高級命令 keys * 返回滿足條件的所有key&#xff0c;可以模糊匹配exists 是否存在指定的keypersist 取消過期時間select 選擇數據庫 &#xff08;0-15&#xff0c;總共16個數據庫&#xff09;move key index 將當前數據庫的 key 移動到給定的數據庫 db 當中randomkey 隨機返回…

華為副總裁徐家駿離職:年薪千萬工作感悟十二條

從普通的公司職員&#xff0c;到年薪千萬的華為副總裁&#xff0c;再到離開華為轉戰百度&#xff0c;徐家駿的十年從業經歷和經驗可資借鑒&#xff0c;我們從中也可以一窺華為的運作過程。徐家駿是華為數據中心的頭&#xff0c;技術超級牛人&#xff0c;一級部門總監&#xff0…

Redis持久化之RDB和AOF

Redis持久化之RDB和AOF Redis 有兩種持久化方案&#xff0c;RDB &#xff08;Redis DataBase&#xff09;和 AOF &#xff08;Append Only File&#xff09;&#xff1b; RDB 詳解 RDB 是 Redis 默認的持久化方案。在指定的時間間隔內&#xff0c;執行指定次數的寫操作&#…

同為程序員 為什么我的工資最低

我看著工資單上每一個開發團隊成員的薪水&#xff0c;慢慢地我不能保持淡定了。 而當我看到我的工資排名是倒數的時候——靠近最后一名——我不由得倒抽一口冷氣。就像圣誕故事中的那個可愛的小男孩Ralphie &#xff0c;想買氣槍卻被忽悠會有危險一樣&#xff0c;我也不斷忽悠…

Docker安裝Redis以及配置Redis環境

1&#xff0c;下載Redis鏡像 首先拉取 Redis 鏡像, 這里我選擇的是 redis:alpine 輕量級鏡像版本 docker pull redis:alpine 下載完成后&#xff0c;通過 docker images 查看我們已經下載的鏡像&#xff0c;看看是否已經下載到本地 2&#xff0c;運行 Redis 容器 docker run …

.NET程序性能的基本要領

摘要&#xff1a;本文分享了性能優化的一些建議和思考&#xff0c;比如不要過早優化、好工具很重要、性能的關鍵&#xff0c;在于內存分配等。開發者不要盲目的沒有根據的優化&#xff0c;首先定位和查找到造成產生性能問題的原因點最重要。 【編者按】Bill Chiles&#xff08…