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

SpringBoot內(nèi)置數(shù)據(jù)源的持久化與解決方案

 更新時(shí)間:2022年07月18日 09:23:43   作者:不會(huì)壓彎的小飛俠  
數(shù)據(jù)源的配置 我們先基于SpringBoot默認(rèn)的HikariDataSource數(shù)據(jù)源,導(dǎo)入JDBC場景,看看SpringBoot幫我們自動(dòng)配置了什么,下面我們來了解SpringBoot內(nèi)置數(shù)據(jù)源持久化

數(shù)據(jù)層解決方案

  • SQL
  • NoSQL

與SQL有關(guān)的解決方案

現(xiàn)有數(shù)據(jù)層解決方案技術(shù)選型

  • Druid + MyBatis-Plus + MySQL
  • 數(shù)據(jù)源:DruidDataSource
  • 持久化技術(shù):MyBatis-Plus / MyBatis
  • 數(shù)據(jù)庫:MySQL

SpringBoot提供了3種內(nèi)嵌的數(shù)據(jù)源對(duì)象供開發(fā)者選擇

  • HikariCP
  • Tomcat提供DataSource
  • Commons DBCP

??平常做項(xiàng)目時(shí)我所需要的maven坐標(biāo)

數(shù)據(jù)源

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

持久化技術(shù)

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

數(shù)據(jù)庫

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

?? springboot中的數(shù)據(jù)源

若不提供數(shù)據(jù)源(例如刪除上面的Druid的坐標(biāo),就默認(rèn)使用這三種中的一種(HikariCP默認(rèn))

  • HikariCP:默認(rèn)內(nèi)置數(shù)據(jù)源對(duì)象
  • Tomcat提供DataSource: HikariCP不可用的情況下,且在web環(huán)境中,將使用tomcat服務(wù)器配置的數(shù)據(jù)源對(duì)象
  • Commons DBCP: Hikari不可用,tomcat數(shù)據(jù)源也不可用,將使用dbcp數(shù)據(jù)源

?? 刪掉durid的maven坐標(biāo),將數(shù)據(jù)源換成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

內(nèi)置持久化解決方案

?? 導(dǎo)入坐標(biāo)

        <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();//查詢單個(gè)對(duì)象
/*     一般不使用這種格式
        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 其實(shí)就是結(jié)果集
				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   #查詢超時(shí)時(shí)間
max-rows: 500       #最大行數(shù)
fetch-size: -1      #緩存行數(shù)

Springboot內(nèi)置數(shù)據(jù)庫

?? SpringBoot提供了3種內(nèi)嵌數(shù)據(jù)庫供開發(fā)者選擇,提高開發(fā)測試效率

  • H2
  • HSQL
  • Derby

?? 導(dǎo)入依賴;

       <dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</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管理控制臺(tái)參數(shù)

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

運(yùn)行項(xiàng)目,在網(wǎng)頁進(jìn)行訪問,連接之后,發(fā)現(xiàn)連接異常,因?yàn)槭状问褂玫脑?,只需要在配置文件中配置相?yīng)的數(shù)據(jù)源就ok了,重新啟動(dòng)成功后,這些配置可以刪除,也可以留著。

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

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

??運(yùn)行項(xiàng)目

?? 輸入密碼登錄

??添加一個(gè)表

??添加數(shù)據(jù)后,查詢表信息

?? 測試

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

???注意: H2內(nèi)置數(shù)據(jù)庫這僅僅用于開發(fā)階段,線上項(xiàng)目請(qǐng)務(wù)必關(guān)閉控制臺(tái)功能

到此這篇關(guān)于SpringBoot內(nèi)置數(shù)據(jù)源的持久化與解決方案的文章就介紹到這了,更多相關(guān)SpringBoot內(nèi)置數(shù)據(jù)源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java微服務(wù)的打包問題解決

    Java微服務(wù)的打包問題解決

    本文主要介紹了Java微服務(wù)的打包問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring?Data?JPA?實(shí)體類中常用注解說明

    Spring?Data?JPA?實(shí)體類中常用注解說明

    這篇文章主要介紹了Spring?Data?JPA?實(shí)體類中常用注解說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java經(jīng)典算法匯總之冒泡排序

    Java經(jīng)典算法匯總之冒泡排序

    冒泡排序基本思想:在要排序的一組數(shù)中,對(duì)當(dāng)前還未排好序的范圍內(nèi)的全部數(shù),自上而下對(duì)相鄰的兩個(gè)數(shù)依次進(jìn)行比較和調(diào)整,讓較大的數(shù)往下沉,較小的往上冒。即:每當(dāng)兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要求相反時(shí),就將它們互換。
    2016-04-04
  • Jedis對(duì)redis的五大類型操作代碼詳解

    Jedis對(duì)redis的五大類型操作代碼詳解

    這篇文章主要介紹了Jedis對(duì)redis的五大操作代碼詳解,分別是字符串、列表、散列、集合、有序集合,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • maven中配置項(xiàng)目的jdk版本無效的排查方式

    maven中配置項(xiàng)目的jdk版本無效的排查方式

    這篇文章主要介紹了maven中配置項(xiàng)目的jdk版本無效的排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • spring boot openfeign從此和httpClient說再見詳析

    spring boot openfeign從此和httpClient說再見詳析

    這篇文章主要給大家介紹了關(guān)于spring boot openfeign從此和httpClient說再見的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-06-06
  • Springboot整合mybatis開啟二級(jí)緩存的實(shí)現(xiàn)示例

    Springboot整合mybatis開啟二級(jí)緩存的實(shí)現(xiàn)示例

    在一級(jí)緩存中,是查詢兩次數(shù)據(jù)庫的,顯然這是一種浪費(fèi),既然SQL查詢相同,就沒有必要再次查庫了,直接利用緩存數(shù)據(jù)即可,這種思想就是MyBatis二級(jí)緩存的初衷,本文就詳細(xì)的介紹了Springboot整合mybatis開啟二級(jí)緩存,感興趣的可以了解一下
    2022-05-05
  • Java中StringUtils工具類的一些用法實(shí)例

    Java中StringUtils工具類的一些用法實(shí)例

    這篇文章主要介紹了Java中StringUtils工具類的一些用法實(shí)例,本文著重講解了isEmpty和isBlank方法的使用,另外也講解了trim、strip等方法的使用實(shí)例,需要的朋友可以參考下
    2015-06-06
  • 關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng)

    關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng)

    這篇文章主要介紹了關(guān)于Spring中@Transactional事務(wù)回滾的注意事項(xiàng),回滾(Rollback)指的是程序或數(shù)據(jù)處理錯(cuò)誤,將程序或數(shù)據(jù)恢復(fù)到上一次正確狀態(tài)的行為?;貪L包括程序回滾和數(shù)據(jù)回滾等類型,需要的朋友可以參考下
    2023-05-05
  • mybatis 加載配置文件的方法(兩種方式)

    mybatis 加載配置文件的方法(兩種方式)

    這篇文章主要介紹了mybatis 加載配置文件的方法,通過實(shí)例代碼給大家介紹了mybatis 加載配置文件的兩種方式,需要的朋友可以參考下
    2017-12-12

最新評(píng)論