SpringBoot内置数据源的持久化如何解决

发布时间:2022-08-17 17:50:17 作者:iii
来源:亿速云 阅读:212

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

数据层解决方案

与SQL有关的解决方案

现有数据层解决方案技术选型

SpringBoot提供了3种内嵌的数据源对象供开发者选择

平常做项目时我所需要的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默认)

删掉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种内嵌数据库供开发者选择,提高开发测试效率

导入依赖;

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

推荐阅读:
  1. springboot配置Druid数据源
  2. springboot如何修改内置tomcat版本

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot

上一篇:linux如何查看java进程是否存在

下一篇:React系列useSyncExternalStore怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》