中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot內置數據源的持久化如何解決

發布時間:2022-08-17 17:50:17 來源:億速云 閱讀:212 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“SpringBoot內置數據源的持久化如何解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“SpringBoot內置數據源的持久化如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

數據層解決方案

與SQL有關的解決方案

現有數據層解決方案技術選型

  • Druid + MyBatis-Plus + MySQL

  • 數據源:DruidDataSource

  • 持久化技術:MyBatis-Plus / MyBatis

  • 數據庫:MySQL

SpringBoot提供了3種內嵌的數據源對象供開發者選擇

  • HikariCP

  • Tomcat提供DataSource

  • Commons DBCP

平常做項目時我所需要的maven坐標

數據源

       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>

持久化技術

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

數據庫

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>

springboot中的數據源

若不提供數據源(例如刪除上面的Druid的坐標,就默認使用這三種中的一種(HikariCP默認)

  • HikariCP:默認內置數據源對象

  • Tomcat提供DataSource: HikariCP不可用的情況下,且在web環境中,將使用tomcat服務器配置的數據源對象

  • Commons DBCP: Hikari不可用,tomcat數據源也不可用,將使用dbcp數據源

刪掉durid的maven坐標,將數據源換成HikariCP

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC
    hikari:
      driver-class-name=com: com.mysql.cj.jdbc.Driver
      username: root
      password: root

內置持久化解決方案

導入坐標

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

編寫測試類:

package com.jkj;
import com.jkj.dao.BookDao;
import com.jkj.domian.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@SpringBootTest
class Springboot09SqlApplicationTests {
	/*@Autowired
	private BookDao bookDao;*/
	/*@Test
	void contextLoads() {
		*//*bookDao.selectById(2);*//*
	}*/
	@Autowired
	private JdbcTemplate jdbcTemplate;
	@Test
	void JDBCTEST() {
//        jdbcTemplate.update();//增刪改
//        jdbcTemplate.query(); //查詢
//        jdbcTemplate.queryForObject();//查詢單個對象
/*     一般不使用這種格式
        String sql ="select * from tbl_book";
        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);
        System.out.println(maps);*/
		RowMapper<Book> rm = new RowMapper<Book>() {
			@Override
			public Book mapRow(ResultSet resultSet, int i) throws SQLException {
//              ResultSet resultSet 其實就是結果集
				Book temp = new Book();
				temp.setId(resultSet.getInt("id"));
				temp.setName(resultSet.getString("name"));
				temp.setType(resultSet.getString("type"));
				temp.setDescription(resultSet.getString("description"));
				return temp;
			}
		};
		String sql = "select * from tbl_book  ";
		List<Book> list = jdbcTemplate.query(sql, rm);
		System.out.println(list);
	}
}

JdbcTemplate的其它配置

spring:
jdbc:
template:
query-timeout: -1   #查詢超時時間
max-rows: 500       #最大行數
fetch-size: -1      #緩存行數

Springboot內置數據庫

SpringBoot提供了3種內嵌數據庫供開發者選擇,提高開發測試效率

  • H2

  • HSQL

  • Derby

導入依賴;

       <dependency>
			<groupId>com.h3database</groupId>
			<artifactId>h3</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

配置H2管理控制臺參數

server:
  port: 80
spring:
  h3:
    console:
      path: /h3
      enabled: true

運行項目,在網頁進行訪問,連接之后,發現連接異常,因為首次使用的原因,只需要在配置文件中配置相應的數據源就ok了,重新啟動成功后,這些配置可以刪除,也可以留著。

SpringBoot內置數據源的持久化如何解決

server:
  port: 80
spring:
  h3:
    console:
      path: /h3
      enabled: true

  datasource:
    url: jdbc:h3:~/test
    hikari:
      driver-class-name=com: org.h3.Driver
      username: sa
      password: 123456

運行項目

SpringBoot內置數據源的持久化如何解決

輸入密碼登錄

SpringBoot內置數據源的持久化如何解決

SpringBoot內置數據源的持久化如何解決

添加一個表

SpringBoot內置數據源的持久化如何解決

添加數據后,查詢表信息

SpringBoot內置數據源的持久化如何解決

測試

@Test
	void testJdbcTemplateSave(@Autowired JdbcTemplate jdbcTemplate){
		String sql="insert into tbl_book values(3,'斗羅大陸','科幻','左手藍銀草右手昊天錘')";
		jdbcTemplate.update(sql);
	}

注意: H2內置數據庫這僅僅用于開發階段,線上項目請務必關閉控制臺功能

讀到這里,這篇“SpringBoot內置數據源的持久化如何解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌江| 黄山市| 马边| 迭部县| 黔南| 西昌市| 靖安县| 南开区| 湖北省| 萍乡市| 通辽市| 沽源县| 香格里拉县| 建昌县| 越西县| 宜川县| 荥阳市| 美姑县| 麟游县| 镇宁| 邯郸县| 华安县| 恩施市| 银川市| 原平市| 敦化市| 潮安县| 新宾| 乌苏市| 山丹县| 长顺县| 南丹县| 宜阳县| 龙胜| 韩城市| 黎川县| 区。| 长春市| 万州区| 杭锦后旗| 晋宁县|