首页 > 其他分享 >SpringBoot默认内嵌数据层解决方案

SpringBoot默认内嵌数据层解决方案

时间:2024-04-01 15:12:32浏览次数:18  
标签:内嵌 SpringBoot temp rs h2 数据源 默认 jdbcTemplate sql

数据层解决方案

常用的数据层解决方案技术选型:数据源+持久化技术+数据库:DruidDataSource+MyBatis-Plus/MyBatis+Mysql;

可以使用Hikari/DruidDataSource+jdbcTemplate/MyBatis-Plus/MyBatis+Mysql/h2搭配使用

内嵌:Embedded

独立的服务器版本:server

内置数据源Hikari

Spring自动配置,durid的依赖在他就会自动配置上

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

  1. HikariCP:默认内置数据源对象(轻量级,运行速度快)
  2. Tomcat提供DataSource:HikariCP不可用的情况下,且在web环境中,将使用tomcat服务器配置的数据源对象
  3. Commons DBCP:Hikari不可用,tomcat数据源也不可用,将使用dbcp数据源

默认启动就是Hikari

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
    username: root
    password: root
  1. 通用配置无法设置具体的数据源配置信息,仅提供基本的连接相关配置,如需配置,在下一级配置中设置具体设定
  2. 每种的配置方法不一样
spring:
    datasource:
    url: jdbc:mysql://ocalhost:3306/ssm_db?serverTimezone=UTC
    hikari:
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: root
        password: root
        maximum-pool-size: 50
    dbcp2:
    tomcat: 
内置持久化解决方案jdbcTemplate
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
spring:
  jdbc:
   template:
     query-timeout: -1  # 查询超时时间
     max-rows: 500      # 最大行数
     fetch-size: -1     # 批处理数量
@springBootTest
class springbootSqlApplicationTests{
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Test
    void testJdbc(){
        String sql="select*from tbl book where id = 1";
        List<Book>query = jdbcTemplate.query(sql, new RowMapper<Book>(){
            @Override
            public Book mapRow(ResultSet rs, int rowNum)throws SQLException{
                Book temp = new Book();
                temp.setId(rs.getInt("id"));
                temp.setName(rs.getString("name"));
                temp.setType(rs.getString("type"));
                temp.setDescription(rs.getString("description"));
                return temp;
            }
        });
        System.out.println(query);
    } 
}

update、query

@Test
void testjdbcTemplata(@Autowired JdbcTemplate jdbcTemplate){
    String sql = "select * from tb_book where id = 1";
    List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);
}
@Test
void testjdbcTemplata(@Autowired JdbcTemplate jdbcTemplate){
    String sql = "select * from tb_book where id = 1";
    RowMapper<Book> rm = new RowMapper<Book>(){
        @Override
        public Book mapRow(ResultSet rs,int rowNum) throws SQLException {
            Book temp = new Book();
            temp.setId(rs.getInt("id"));
            temp.setName(rs.getString("name"));
            temp.setType(rs.getString("type"));
            temp.setDesc(rs.getString("desc"));
            return temp;
        }
    };
    List<Book> list = jdbcTemplate.query(sql,rm);
}
@Test
void testjdbcTemplataSave(@Autowired JdbcTemplate jdbcTemplate){
    String sql = "insert into tb_book values (1,'spb1','spb1','spb1')";
    jdbcTemplate.update(sql);
}
内嵌数据库H2

SpringBoot提供了3种内嵌数据库供开发者选择:H2、HSQL、Derby

  1. 都是java语言写的(放在SpringBoot容器里跟这样一起启动)
  2. 都可以在内存中启动
  3. 都足够小
  4. 都可以脱离文件系统那种数据库运行,测试方便,真正上线还是用MySQL

h2数据库控制台仅用于开发阶段

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jpa</artifactId>
</dependency>

启动管理界面

用户名/密码:sa/123456

spring:
  h2:
    console:
      path: /h2
      enabled: true
  datasource: jdbc:h2:~test
  hikari: 
    driver-class-name: org.h2.Driver
    username: sa
    password: 123456

标签:内嵌,SpringBoot,temp,rs,h2,数据源,默认,jdbcTemplate,sql
From: https://www.cnblogs.com/lm02/p/18108458

相关文章

  • 基于springboot实现大学生入学审核系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现大学生入学审核系统演示摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了大学生入学审核系统的开发全过程。通过分析大学生入学审核系统管理的不足,创建了一个计算机管理大学生入学审核系统的方案。文......
  • 基于springboot实现学生读书笔记共享平台系统项目【项目源码+论文说明】计算机毕业设
    基于springboot实现学生读书笔记共享平台系统演示摘要本论文主要论述了如何使用JAVA语言开发一个读书笔记共享平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述读书笔记共享平台的当前背景以及系统开发......
  • 【附源码】JAVA计算机毕业设计智慧外贸平台(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球经济一体化的时代背景下,智慧外贸平台的建设已成为提升我国外贸竞争力、优化国际贸易环境的关键一环。随着信息技术的迅猛发展,传统的外贸模式已......
  • 【附源码】JAVA计算机毕业设计智慧物流管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息化时代的快速发展,物流行业作为现代经济体系的重要支柱,正面临着前所未有的机遇与挑战。传统的物流管理方式已难以适应现代社会的需求,智能化、......
  • 【附源码】JAVA计算机毕业设计智慧小饭桌(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展和科技的进步,人们对教育的关注和要求也在不断提高。在当今快节奏的生活中,许多家庭面临着孩子午餐难以解决的问题,尤其是对于那些工......
  • 【附源码】JAVA计算机毕业设计智慧型居民小区物业管理(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和居民生活水平的提高,智慧型居民小区逐渐成为现代城市发展的一个重要方向。在这样的背景下,传统物业管理模式已难以满足居民日益......
  • SpringBoot运维学习笔记
    打包与运行windows打包与运行windows打包与运行,linux程序运行服务启动失败:没有主清单属性【没有打包插件】打包插件的作用:https://www.bilibili.com/video/BV15b4y1a7yG?p=55mvnpackagemaven打包的时候会执行测试的流程,运行test里面的代码,会导致数据有一些变化;打包插......
  • Java毕业设计-基于springboot开发的致远汽车租赁系统平台-毕业论文+答辩PPT(附源代码+
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构三、系统实现展示1、系统功能模块2、管理员功能模块3、业务员功能模块3、用户功能模块四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的致远汽车租......
  • Java毕业设计-基于springboot开发的智慧外贸平台-毕业论文+答辩PPT(附源代码+演示视频)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构三、系统实现展示1、系统功能模块2、后台功能模块2.1管理员功能2.2买家功能2.3商家功能四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的智慧外贸......
  • 如何根据服务器配置选择默认的线程数量:实战指南
    在现代软件开发与部署中,合理设置线程数量对于充分发挥服务器性能、提升应用程序响应速度和资源利用率至关重要。本文将深入探讨如何根据服务器配置来选择默认的线程数量,旨在为开发者提供一套科学、实用的决策框架。我们将讨论关键因素、评估方法和最佳实践,帮助您在复杂的工......