SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.3 H2数据库
创始人
2024-01-30 07:08:44

SpringBoot

【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】

SpringBoot 开发实用篇

文章目录

      • SpringBoot
      • SpringBoot 开发实用篇
      • 4 数据层解决方案
        • 4.3 H2数据库
          • 4.3.1 问题引入
          • 4.3.2 内置数据库
          • 4.3.3 小结
          • 4.3.4 总结

4 数据层解决方案

4.3 H2数据库

4.3.1 问题引入

之前我们已经看了SpringBoot 中默认的对数据源、持久化技术对应的解决方案

在这里插入图片描述

问题来了,数据库有吗?【当然毋庸置疑,肯定有的】

4.3.2 内置数据库

SpringBoot提供了3种内嵌数据库供开发者选择,提高开发测试效率

  • H2
  • HSQL
  • Derb

这几个数据库都是用Java 语言开发的【内存模式启动】

三个都足够【轻巧】

先导入坐标

MySQL 的驱动就可以不要了

在这里插入图片描述

jdbc 留着,总得留一个持久层技术吧

com.h2databaseh2
org.springframework.bootspring-boot-starter-data-jpa

在这里插入图片描述

现在程序一跑起来就自带这个H2 数据库了

添加上web 依赖

在这里插入图片描述

把原来的配置信息都注掉

在这里插入图片描述

# h2 数据库
server:port: 80

在这里插入图片描述

OK,启动服务器

在这里插入图片描述

可以明显看到和之前不一样

【h2数据库的管理控制台】

在这里插入图片描述

spring:h2:console:path: /h2enabled: true

在这里插入图片描述

再次启动

在这里插入图片描述

打开浏览器 输入localhost/h2

在这里插入图片描述

好家伙

在这里插入图片描述

仔细看看

在这里插入图片描述

在这里插入图片描述

点击连接

在这里插入图片描述

看到报错了 [Database “C:/Users/DingJiaxiong/test” not found, either pre-create it or allow remote database creation (not recommended in secure environments) 90149-214] 90149/90149 (帮助)

改一下配置信息

spring:h2:console:path: /h2enabled: truedatasource:url: jdbc:h2:~/testhikari:driver-class-name: org.h2.Driverusername: sapassword: 123456

在这里插入图片描述

按照浏览器中的信息配置

重启

在这里插入图片描述

再次尝试点击连接

在这里插入图片描述

OK,这样就进来了【第一次初始化的时候才用配置,之后都可以不用了】

在这里插入图片描述

这些就是表【当然笔者现在的SpringBoot 版本已经和李老师的有区别了】

先来创建一张表

create table tbl_book(id int,type varchar,name varchar,description varchar)

在这里插入图片描述

在这里插入图片描述

这样表就建好了

查一下 select * from tbl_book

在这里插入图片描述

插入数据 insert into tbl_book values(1,'springboot','springboot','springboot')

在这里插入图片描述

再查一下

在这里插入图片描述

这样就有数据了

这就是H2 内嵌数据库的大致使用方法了,接下来就该编程了

@Test
void testJdbcTemplateSave(){String sql = "insert into tbl_book values(2,'haha','heihei','xixi')";jdbcTemplate.update(sql);}

直接执行咱们之前的测试【把id 加上】

在这里插入图片描述

好家伙,成功了

再次运行上面那个查询全部的

@Test
void testJdbcTemplate(){String sql = "select * from tbl_book";RowMapper rm = new RowMapper() {@Overridepublic 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;}};List bookList = jdbcTemplate.query(sql, rm);System.out.println(bookList);
}

执行结果:

在这里插入图片描述

妙啊【现在直接就可以用了,不关MySQL 的事儿了】

现在我们接入 MP

在这里插入图片描述

然后JDBC 为了避免版本冲突就可以拿掉了

在这里插入图片描述

把dao 层复活!

package com.dingjiaxiong.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dingjiaxiong.domain.Book;
import org.apache.ibatis.annotations.Mapper;/*** ClassName: BookDao* date: 2022/10/20 10:53** @author DingJiaxiong*/@Mapper
public interface BookDao extends BaseMapper {
}

直接进行测试

@Autowired
private BookDao bookDao;@Test
void test() {bookDao.selectById(1);
}

运行结果

在这里插入图片描述

看到报错了,BOOK表没找到

MP的配置没开…

在这里插入图片描述

再试一次

在这里插入图片描述

没毛病【大概就是这样了】

回顾一下

设置当前项目为web工程,并配置H2管理控制台参数

在这里插入图片描述

操作数据库(创建表)

在这里插入图片描述

设置访问数据源

在这里插入图片描述

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

在这里插入图片描述

SpringBoot可以根据url地址自动识别数据库种类,在保障驱动类存在的情况下,可以省略配置

在这里插入图片描述

牛逼牛逼

4.3.3 小结
  1. H2内嵌式数据库启动方式
  2. H2数据库线上运行时请务必关闭
4.3.4 总结

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

在这里插入图片描述

  1. 数据源配置(Hikari)
  2. 持久化技术(JdbcTemplate)
  3. 数据库(H2

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
最安全的匿名举报方式 匿名12... 来源:中安在线8月9日,河北邢台小伙张钊(化名)在河北政务服务网12345平台举报楼上邻居涉嫌非法开...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
中国光棍有多少人 2020年9... 我国是世界上人口最多的国家,庞大的人口基数为我国的发展带来了许多的益处。但是同时,我国也是出生人口性...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...