SpringBoot内置数据源的持久化如何解决(springboot,开发技术)

时间:2024-05-03 09:10:56 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

本文小编为大家详细介绍“SpringBoot内置数据源的持久化如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot内置数据源的持久化如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

数据层解决方案

  • SQL

  • NoSQL

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

编写测试类:

packagecom.jkj;importcom.jkj.dao.BookDao;importcom.jkj.domian.Book;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importorg.springframework.jdbc.core.JdbcTemplate;importorg.springframework.jdbc.core.RowMapper;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.List;@SpringBootTestclassSpringboot09SqlApplicationTests{ /*@Autowired privateBookDaobookDao;*/ /*@Test voidcontextLoads(){ *//*bookDao.selectById(2);*//* }*/ @Autowired privateJdbcTemplatejdbcTemplate; @Test voidJDBCTEST(){//jdbcTemplate.update();//增删改//jdbcTemplate.query();//查询//jdbcTemplate.queryForObject();//查询单个对象/*一般不使用这种格式Stringsql="select*fromtbl_book";List<Map<String,Object>>maps=jdbcTemplate.queryForList(sql);System.out.println(maps);*/ RowMapper<Book>rm=newRowMapper<Book>(){ @Override publicBookmapRow(ResultSetresultSet,inti)throwsSQLException{//ResultSetresultSet其实就是结果集 Booktemp=newBook(); temp.setId(resultSet.getInt("id")); temp.setName(resultSet.getString("name")); temp.setType(resultSet.getString("type")); temp.setDescription(resultSet.getString("description")); returntemp; } }; Stringsql="select*fromtbl_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 voidtestJdbcTemplateSave(@AutowiredJdbcTemplatejdbcTemplate){ Stringsql="insertintotbl_bookvalues(3,'斗罗大陆','科幻','左手蓝银草右手昊天锤')"; jdbcTemplate.update(sql); }

注意: H2内置数据库这仅仅用于开发阶段,线上项目请务必关闭控制台功能

读到这里,这篇“SpringBoot内置数据源的持久化如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

本文:SpringBoot内置数据源的持久化如何解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:SpringBoot怎么引入mybatis与连接Mysql数据库下一篇:

21 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18