【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】
之前我们已经看了SpringBoot 中默认的对数据源、持久化技术对应的解决方案
问题来了,数据库有吗?【当然毋庸置疑,肯定有的】
SpringBoot提供了3种内嵌数据库供开发者选择,提高开发测试效率
这几个数据库都是用Java 语言开发的【内存模式启动】
三个都足够【轻巧】
先导入坐标
MySQL 的驱动就可以不要了
jdbc 留着,总得留一个持久层技术吧
<dependency>
<groupId>com.h2databasegroupId>
<artifactId>h2artifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
现在程序一跑起来就自带这个H2 数据库了
添加上web 依赖
把原来的配置信息都注掉
# h2 数据库
server:
port: 80
OK,启动服务器
可以明显看到和之前不一样
【h2数据库的管理控制台】
spring:
h2:
console:
path: /h2
enabled: 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: /h2
enabled: true
datasource:
url: jdbc:h2:~/test
hikari:
driver-class-name: org.h2.Driver
username: sa
password: 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<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.setDescription(rs.getString("description"));
return temp;
}
};
List<Book> 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<Book> {
}
直接进行测试
@Autowired
private BookDao bookDao;
@Test
void test() {
bookDao.selectById(1);
}
运行结果
看到报错了,BOOK表没找到
MP的配置没开…
再试一次
没毛病【大概就是这样了】
回顾一下
设置当前项目为web工程,并配置H2管理控制台参数
操作数据库(创建表)
设置访问数据源
H2数据库控制台仅用于开发阶段,线上项目请务必关闭控制台功能
SpringBoot可以根据url地址自动识别数据库种类,在保障驱动类存在的情况下,可以省略配置
牛逼牛逼
现有数据层解决方案技术选型