SpringBoot07-數據層的解決方案:SQL

一、內置數據源

1-1、【回顧】Druid數據源的配置

druid的兩種導入格式

1-2、springboot提供的3種內置數據源的配置

若是不配置Druid,?springboot提供了3中默認的數據源配置,它們分別是:


1. HikariCP默認

  • 從 Spring Boot 2.0 開始的默認數據源

  • 性能優秀,輕量級,響應速度快,社區活躍

  • 推薦在生產環境中使用

配置示例(application.yml.properties):

【注意】:

一般,默認的數據源的配置就是用的?Hikari數據源!

常用屬性:

  • maximum-pool-size: 最大連接數

  • minimum-idle: 最小空閑連接數

  • connection-timeout: 連接超時時間(毫秒)


2. Apache Commons DBCP2

Hikari不可用,tomcat數據源也不可用。

  • 是 Apache Commons 提供的連接池實現

  • 比 HikariCP 稍重,性能略低一些

配置方式:


3. Tomcat JDBC Connection Pool

Hikari不可用,且在web環境中,將使用Tomcat服務器配置的數據源對象!

  • Spring Boot 內部默認依賴于 Tomcat,所以這個連接池和 Spring Boot 集成良好

  • 性能也不錯,但 HikariCP 更優

配置方式:


4、切換數據源類型的方法

(1)、通過配置:
spring.datasource.type=xxx

可選值包括:

  • com.zaxxer.hikari.HikariDataSource

  • org.apache.commons.dbcp2.BasicDataSource

  • org.apache.tomcat.jdbc.pool.DataSource

(2)、通過具體設置

二、springboot內置持久化的解決方案:jdbcTemplate

1、導入相關依賴

<!-- spring-boot-starter-jdbc 默認就包含了 JdbcTemplate -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

【注意】:

spring-boot-starter-jdbc中默認使用的是hikari數據源!?

2、配置 application.ymlapplication.properties中的數據庫連接信息

3、使用 JdbcTemplate

Spring Boot 會自動將 JdbcTemplate 注冊為 Bean,只需注入即可:

【注意】:

1、如果你不確定一定有數據,不要使用 queryForObject,否則查不到數據會報錯?

2、默認支持下劃線轉駝峰映射

4、常用方法:

方法說明
update(String sql, Object... args)執行 insert、update、delete
query(String sql, RowMapper<T> rowMapper)查詢多個結果
queryForObject(String sql, RowMapper<T> rowMapper, Object... args)查詢單個結果(查不到報錯
batchUpdate(String sql, List<Object[]>)批量更新
queryForList(String sql)查詢返回 List<Map<String, Object>>

5、使用RowMapper,手動映射

6、spring中jdbcTemplate中的應用,參考文章:

spring07-JdbcTemplate操作數據庫-CSDN博客

三、內置數據庫

都是用java寫的

都能在內存中運行,測試方便

都十分輕巧?

2-1、內嵌數據庫H2

1、導入數據庫相關依賴

【注意】:

此時點擊test connection會報錯:初始化錯誤,需要在application.yml中配置如下:

啟動項目后,刷性頁面,再次點擊test connection即可,此時即使把application.yml中配置的配置在刪掉也不影響了。

使用h2創建一張表:tbl_book:

編寫操作數據庫的代碼1:jdbcTemplate

@SpringBootTest
public class BookJdbcTest {@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void testBookSave(){String sql = "insert into TBL_BOOK (id, type, name, description) values (2, 'springboot2', 'springboot2', 'springboot2')";jdbcTemplate.update(sql);}@Testpublic void testSelect(){String sql= "select * from tbl_book";List<Book> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Book.class));query.forEach(System.out::println);}}

操作數據庫代碼2:mybatis-plus

@SpringBootTest
public class BookMybatisPlusTest {@Autowiredprivate IBookService bookService;@Testpublic void testSave(){Book book = new Book();book.setId(3);book.setName("springboot3");book.setType("springboot3");book.setDescription("springboot3");bookService.save(book);}@Testpublic void testSelect(){Book book = bookService.getById(3);System.out.println(book);}}

?

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

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

相關文章

前端自動化埋點:頁面模塊級行為跟蹤與問題定位系統??的技術設計方案

一、核心設計目標??精細化監控??&#xff1a;定位到頁面中??單個模塊??的曝光、點擊等行為。??低侵入性??&#xff1a;業務代碼與埋點邏輯解耦&#xff0c;降低開發維護成本。??鏈路可追蹤??&#xff1a;串聯用戶從曝光到操作的完整行為路徑。??實時性??&a…

Node.js 與 Java 性能對比

一、核心架構與任務模型對比Node.js 單線程事件循環 非阻塞I/O 通過V8引擎執行JavaScript&#xff0c;采用事件驅動模型&#xff0c;所有I/O操作&#xff08;如網絡請求、文件讀寫&#xff09;均為非阻塞。單線程處理所有請求&#xff0c;但通過事件循環&#xff08;Event Loo…

Python3常見接口函數

Python3常見接口函數一、基礎內置函數 輸入輸出 print()&#xff1a;輸出內容input()&#xff1a;讀取用戶輸入 類型轉換 int()、float()、str()、bool()&#xff1a;基礎類型轉換list()、tuple()、set()、dict()&#xff1a;容器類型轉換bin()、hex()、oct()&#xff1a;進制轉…

《P4092 [HEOI2016/TJOI2016] 樹》

題目描述在 2016 年&#xff0c;佳媛姐姐剛剛學習了樹&#xff0c;非常開心。現在他想解決這樣一個問題&#xff1a;給定一顆有根樹&#xff0c;根為 1 &#xff0c;有以下兩種操作&#xff1a;標記操作&#xff1a;對某個結點打上標記。&#xff08;在最開始&#xff0c;只有結…

TCP頭部

TCP頭部字段詳解1. 源端口和目的端口&#xff08;各16位&#xff09;功能&#xff1a;標識發送和接收應用程序范圍&#xff1a;0-65535&#xff08;0-1023為知名端口&#xff09;技術細節&#xff1a;客戶端通常使用臨時端口&#xff08;1024-65535&#xff09;服務端使用固定端…

LinkedList與鏈表(單向)(Java實現)

引入鏈表結構&#xff1a;在ArrayList任意位置插入或者刪除元素時&#xff0c;就需要將后序元素整體往前或者往后 搬移&#xff0c;時間復雜度為O(n)&#xff0c;效率比較低&#xff0c;因此ArrayList不適合做任意位置插入和刪除比較多的場景。因此&#xff1a;java集合中又引入…

網絡--VLAN技術

目錄 VLAN實驗報告 一、實驗拓撲 二、實驗要求 三、實驗思路 1、實驗準備 2. VLAN 3. DHCP 自動分配 4、 全網可達驗證 四、實驗步驟 &#xff08;一&#xff09;交換機配置- VLAN 創建與接口劃分 &#xff08;二&#xff09;路由器配置&#xff08;R1&#xff0c…

網絡基礎17--設備虛擬化

一、傳統MSTPVRRP的不足傳統MSTPVRRP設計&#xff1a;規劃復雜&#xff1a;需要詳細規劃VRRP多實例的Master歸屬、MSTP的VLAN和生成樹實例歸屬&#xff0c;以及IP網段。收斂速度慢&#xff1a;故障恢復速度一般在秒級&#xff0c;VRRP收斂時間至少需要3秒&#xff0c;故障恢復速…

深入解析Hadoop資源隔離機制:Cgroups、容器限制與OOM Killer防御策略

Hadoop資源隔離機制概述在分布式計算環境中&#xff0c;資源隔離是保障多任務并行執行穩定性的關鍵技術。Hadoop作為主流的大數據處理框架&#xff0c;其資源管理能力直接影響集群的吞吐量和任務成功率。隨著YARN架構的引入&#xff0c;Hadoop實現了計算資源與存儲資源的解耦&a…

static 關鍵字的 特殊性

static 關鍵字的 “特殊性” 主要體現在其與類、對象的綁定關系&#xff0c;以及由此帶來的一些反常規規則&#xff0c;具體如下&#xff1a;生命周期與內存位置特殊靜態成員&#xff08;變量 / 方法&#xff09;隨類加載而創建&#xff0c;隨類卸載而銷毀&#xff0c;生命周期…

win10系統Apache以 FastCGI方式運行PHP

文件下載及官方網站 VC運行庫Latest下載頁:Latest supported Visual C Redistributable downloads | Microsoft Learnapache httpd官網:Welcome! - The Apache HTTP Server Project下載頁:Apache VS17 binaries and modules downloadphp官網:PHP: Hypertext Preprocessor下載頁…

MCP與企業數據集成:ERP、CRM、數據倉庫的統一接入

MCP與企業數據集成&#xff1a;ERP、CRM、數據倉庫的統一接入 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是我…

【milvus檢索】milvus檢索召回率

Milvus中兩種核心查詢方式&#xff1a;暴力搜索&#xff08;Brute-force Search&#xff09; 和 近似最近鄰搜索&#xff08;Approximate Nearest Neighbor, ANN&#xff09;。 逐一計算相似度&#xff1a;這是暴力搜索&#xff0c;能保證100%找到最相似的向量&#xff0c;但速…

docker Neo4j

Day 1 &#xff1a;Docker Desktop 基礎熟悉 運行官方 hello-world 測試&#xff1a; docker -run hello-world 運行 Nginx 體驗容器暴露端口&#xff1a; docker run -d -p 8080:80 nginx -d --detach 以 分離模式 運行容器 -p --publish 設置 宿主機與容器的端口映射。…

Win10_Qt6_C++_YOLO推理 -(1)MingW-opencv編譯

先上效果圖&#xff1a; 因為是一個為了嘗試跑通的demo&#xff0c;美觀、功能都先忽略哈。 一、環境 庫版本下載鏈接備注cmakecmake-4.1.0-rc2-windows-x86_64.msihttps://cmake.org/download/make x86_64-15.1.0-release-posix-seh-ucrt-rt_v12-rev0.7zhttps://github.com/…

day060-zabbix監控各種客戶端

文章目錄0. 老男孩思想-一個人的背書1. zabbix各種客戶端1.1 Windows Server監控1.2 網絡設備監控1.3 java應用監控1.4 前端監控java程序故障2. 相關項監控3. 思維導圖0. 老男孩思想-一個人的背書 學歷、能力、態度、特長、人品、口碑&#xff08;身邊的人、領導&#xff09; …

OpenCV 官翻 2 - 圖像處理

文章目錄色彩空間轉換目標色彩空間轉換目標追蹤如何確定要追蹤的HSV值&#xff1f;練習圖像的幾何變換目標變換縮放翻譯旋轉仿射變換透視變換其他資源圖像閾值處理目標簡單閾值化自適應閾值化大津二值化法Otsu二值化算法原理其他資源練習圖像平滑處理目標二維卷積&#xff08;圖…

動態路由協議基礎

一、動態路由協議簡介2.動態路由協議的基本功能二、動態路由協議分類對比項距離矢量&#xff08;如 RIP&#xff09;鏈路狀態&#xff08;如 OSPF&#xff09;信息來源只聽直接鄰居說收集全網鏈路狀態&#xff0c;自己建 “地圖”計算邏輯鄰居給的距離 1&#xff0c;簡單累加用…

netstat -tunlp | grep的作用

??一、命令整體結構解析??命令由兩部分通過管道符 |連接&#xff1a;netstat -tunlp&#xff1a;核心網絡狀態統計命令&#xff0c;輸出指定類型的網絡連接信息&#xff1b;grep&#xff1a;文本搜索工具&#xff0c;用于過濾 netstat的輸出結果&#xff0c;僅保留符合特定…

教育數字化革命:低代碼破局與未來展望

當下&#xff0c;教育領域正經歷前所未有的深刻變革——教育數字化轉型。這并非簡單的技術疊加&#xff0c;而是從教育理念到模式的全方位重塑&#xff0c;已成為推動教育高質量發展、助力我國邁向教育強國的核心驅動力。數字技術正以前所未有的速度和力度&#xff0c;全方位重…