【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】
之前我们已经看了SpringBoot 中默认的对数据源、持久化技术对应的解决方案

问题来了,数据库有吗?【当然毋庸置疑,肯定有的】
SpringBoot提供了3种内嵌数据库供开发者选择,提高开发测试效率
这几个数据库都是用Java 语言开发的【内存模式启动】
三个都足够【轻巧】
先导入坐标
MySQL 的驱动就可以不要了

jdbc 留着,总得留一个持久层技术吧
com.h2database h2
org.springframework.boot spring-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地址自动识别数据库种类,在保障驱动类存在的情况下,可以省略配置

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