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

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

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

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

  • SQL
  • NoSQL

與SQL有關的解決方案

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

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

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

  • HikariCP
  • Tomcat提供DataSource
  • Commons DBCP

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

數(shù)據(jù)源

       <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>        

數(shù)據(jù)庫

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

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

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

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

?? 刪掉durid的maven坐標,將數(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)置持久化解決方案

?? 導入坐標

        <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       #最大行數(shù)
fetch-size: -1      #緩存行數(shù)

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

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

  • H2
  • HSQL
  • Derby

?? 導入依賴;

       <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管理控制臺參數(shù)

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

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

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

??運行項目

?? 輸入密碼登錄

??添加一個表

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

?? 測試

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

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

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

相關文章

  • SpringBoot實現(xiàn)抽獎算法的示例代碼

    SpringBoot實現(xiàn)抽獎算法的示例代碼

    這篇文章主要為大家詳細介紹了如何通過SpringBoot實現(xiàn)抽獎算法,文中的示例代碼簡潔易懂,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • 基于Java實現(xiàn)簡易的局域網(wǎng)對話系統(tǒng)

    基于Java實現(xiàn)簡易的局域網(wǎng)對話系統(tǒng)

    這篇文章主要介紹了基于Java實現(xiàn)的簡易的局域網(wǎng)對話系統(tǒng),文中的示例代碼對我們學習Java有一定的幫助,感興趣的小伙伴快來跟隨小編一起學習一下吧
    2021-12-12
  • java Scanner類的使用示例代碼

    java Scanner類的使用示例代碼

    這篇文章主要介紹了java Scanner類的使用,Scanner類還可以任意地對字符串和基本類型(如int和double)的數(shù)據(jù)進行分析。借助于Scanner,可以針對任何要處理的文本內(nèi)容編寫自定義的語法分析器,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • idea導入項目爆紅問題記錄以及解決

    idea導入項目爆紅問題記錄以及解決

    這篇文章主要介紹了idea導入項目爆紅問題記錄以及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spark學習筆記Spark Streaming的使用

    Spark學習筆記Spark Streaming的使用

    這篇文章主要介紹了Spark學習筆記Spark Streaming的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 淺談解決Hibernate懶加載的4種方式

    淺談解決Hibernate懶加載的4種方式

    這篇文章主要介紹了淺談解決Hibernate懶加載的4種方式,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • maven為MANIFEST.MF文件添加內(nèi)容的方法

    maven為MANIFEST.MF文件添加內(nèi)容的方法

    這篇文章主要介紹了maven為MANIFEST.MF文件添加內(nèi)容的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java利用POI讀取、寫入Excel的方法指南

    Java利用POI讀取、寫入Excel的方法指南

    這篇文章主要給大家介紹了關于Java利用POI讀取、寫入Excel的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Java中JSON處理工具類使用詳解

    Java中JSON處理工具類使用詳解

    這篇文章主要為大家詳細介紹了Java中JSON處理工具類的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • IDEA必備開發(fā)神器之EasyCode

    IDEA必備開發(fā)神器之EasyCode

    對于java程序員來說,日常工作中就是crud的操作,每次都要搭建MVC三層,還是很繁瑣,這里就出現(xiàn)了神器easycode的工具.可以快速生成代碼.并且還可以自定義模板.需要的朋友可以參考下
    2021-05-05

最新評論

长子县| 依兰县| 池州市| 黄陵县| 固镇县| 武清区| 车致| 中牟县| 商洛市| 榕江县| 怀柔区| 梅河口市| 吴旗县| 长顺县| 星子县| 延长县| 南乐县| 商水县| 新河县| 孟村| 华坪县| 焦作市| 乾安县| 墨江| 嘉黎县| 漯河市| 耒阳市| 车险| 若羌县| 夹江县| 涿州市| 钦州市| 绥滨县| 淳化县| 颍上县| 禄丰县| 肥西县| 囊谦县| 清流县| 类乌齐县| 浮梁县|