上文 SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发我们已经开发完了实体类
我们就可以做数据层了
目前来讲 数据层技术 使用了最大的自然是 MyBatis 但其实MyBatis-Plus在国内很多中小企业还是使用的挺多的
这次 我们主要是通过MyBatis-Plus和Druid来做这件事情
这两个工具的坐标呢 我们之前是已经导进去了
然后 找到项目配置文件 application.yml
添加如下数据库配置代码
spring:
datasource:
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: root
mybatis-plus:
global-config:
db-config:
id-type: auto
这里这个不要直接复制 首先 前面的没什么 但 URL 我只想的是本地 3306端口 如果你没设置过 一般都是一样的 然后 指定后面的 下面的test数据库
类型 我们设置的 MySql
然后 下面 用户名和密码 因为我一直没动过 所以都是默认的 root
下面的配置 则是在告诉他 我们的id使用数据自增的特性
然后 做数据层接口
在启动类同目录下 创建 dao包
下面创建一个接口 叫 bookDao
参考代码如下
package com.example.bookconfig.dao;
import com.example.bookconfig.domain.book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface bookDao {
@Select("select * from book where id = #{id}")
book getById(Integer id);
}
我们想用 @Mapper 声明MyBatis
然后 写了一个函数 用Select挂了sql上去 函数接收一个 参数id 数字类型 sql的意思大体就是通过id寻找对应的一条数据
但是 现在我们数据库的book显然没有数据啊 那么 我们就来给他加一条 还是打开MySql管理工具
进入查询 输入并运行sql
INSERT INTO `book`(`type`,`name`,`description`)
VALUES(1,"小猫猫","超级可爱");
这就是个添加语句 因为 id是一个主键自动增长的字段 我们不用管 所以 type 1 name 小猫猫 description 超级可爱
运行成功后 我们再次查看book表
可以看到 这条数据就加进去了
然后 我们来到测试类
编写代码如下
package com.example.bookconfig;
import com.example.bookconfig.dao.bookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class BookConfigApplicationTests {
@Autowired
private bookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(1));
}
}
这里 调用了 我们刚刚写的bookDao接口中的getById方法查询了id等于1的数据
我们右键运行测试类
运行结果如下
也是成功帮我找到了这条数据
当然 我们这里只是试一下能不能跑起来 Mp不会这么开发 他让我自己这样写sql太麻烦了 很多东西它都帮你封装好了
我们直接将bookDao接口 的代码修改如下
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.bookconfig.domain.book;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface bookDao extends BaseMapper<book> {
}
我们自己通过继承BaseMapper接口 来使用其中的函数 然后 泛型为 操作book实体类 你不指定实体类 你肯定要告诉他你要操作哪个表 哪个类对吧
他就会通过你给他的类 去寻找同名的表
这里 我们按住Ctrl 鼠标点进去看一下
这个接口中就自带这么多操作
我们测试类直接将getById 改成 selectById就好了
运行结果如下
很明显 根据id查询就OK了 然后 我们来测试一下其他几个方法
先是添加
我们在测试类编写如下代码
package com.example.bookconfig;
import com.example.bookconfig.dao.bookDao;
import com.example.bookconfig.domain.book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class BookConfigApplicationTests {
@Autowired
private bookDao bookDao;
@Test
void contextLoads() {
book book = new book();
book.setType(0);
book.setName("母猪的产后护理");
book.setDescription("深度研究母猪产后护理的高级哲学以及母猪的历史价值");
bookDao.insert(book);
}
}
简单说 我们定义了一个book对象 通过set方法 将他的几个值都给了内容
还是那句话 id不需要管 因为是有自增属性的
然后 通过BaseMapper提供的insert方法将对象的内容插入到数据库中去 我们运行完代码查看数据库
这条数据就成功进来了
然后 我们在测试类中编写如下代码
book book = new book();
book.setId(1);
book.setType(0);
book.setName("java从入门到放弃");
book.setDescription("讲述当代打工人从入学被坑到弃坑投奔其他行业的悲惨经历");
bookDao.updateById(book);
BaseMapper更改数据的方式叫updateById
因为他要根据id做更改 所以 我们还是要用set将id赋值 告诉他改第几条
然后 我们记好数据库中 id为1数据的内容
我们运行代码 再去数据库中查看book表 数据如下 很明显已经修改成功了
然后 我们编写代码如下
bookDao.deleteById(2);
没错 根据id删除的方法叫 deleteById
我们将id为2 就是我们刚加进去的数据给他干掉
运行代码然后 去数据库刷新 book表
很明显 第二条数据就被干掉了
不过这样 不太方便我们看查询全部数据的效果 我们重新执行一次添加的代码将数据加回来
这样就会好一点
然后 我们在测试类中编写代码如下文章来源:https://www.toymoban.com/news/detail-493797.html
System.out.println(bookDao.selectList(null));
selectList是用来查询全部的方法 但是 这个要写条件 但我们就想查全部 那就直接 传个null给他
运行结果如下
可以看到 他是查询到了全部的数据文章来源地址https://www.toymoban.com/news/detail-493797.html
到了这里,关于SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!