springboot+mybatisplus框架实现数据库基本增删查改
前⾔
这⾥默认都搭建好了框架,因此搭建框架的部分和⼀些要使⽤的依赖就不再赘述。⼀些说法是本⼈⾃⼰的理解,可能不准确,如有错误可以指出。
三层架构之间的⼯作
⾸先梳理下⼯作原理,查询操作其实就是由数据访问层(dao层)从数据库拿到数据,传到业务逻辑层(service层)进⾏逻辑处理,最后传到展⽰层(controller层)交给前端。⽽插⼊或者修改就是从展⽰层拿到数据,传到业务逻辑层进⾏相应逻辑判断,最后传到数据访问层进⾏插⼊或者修改或者删除操作。⽽这其中进⾏数据传递的媒介就是数据库中表对应的实体类。(配合图⽚使⽤效果更佳)
pojo包下的就是对应的实体类
实现增删查改
1.创建表对应的实体类
本部分⽐较简单就不做展⽰,注意⽣成get,set⽅法即可
2.写数据访问层dao
注意该接⼝继承BaseMapper
/**
* demo⽰例的dao数据逻辑层
* 需要继承mybatis plus的basemapper接⼝
*/
@Repository
public interface DemoDao extends BaseMapper<Demo> {
}
3.写service层中想要实现的逻辑
这⾥分为两个⼩步骤(这⾥只写了插⼊数据做⽰例,删除、修改、查询同理)
第⼀步是写接⼝定义想要完成的逻辑
/**
* demo⽰例的service层接⼝
*/
public interface DemoService {
/**
* 添加⽰例
* @param demo
* @return
*/
int insertDemo(Demo demo);
第⼆步是写接⼝的实现类,这⾥注意使⽤IOC⾃动注⼊对象实例
/**
* demo⽰例service层实现类
*/
@Service
public class DemoServiceImpl implements DemoService {
/**
* 使⽤spring的ioc容器⾃动注⼊对象实例
*/
@Autowired
private DemoDao demoDao;
/
**
* 添加⽰例
*
* @param demo
* @return
*/
@Override
public int insertDemo(Demo demo) {
return demoDao.insert(demo);
}
4.在展⽰层调⽤实现的插⼊⽅法
因为没有前端页⾯,所以这⾥的端⼝测试由swagger完成
emmm,⾄于swagger的调试,之后再另写⼀篇⽂章展⽰
/**
* demo⽰例的controller控制层
*/
@Api(tags = "demo案例接⼝")
@RestController
@RequestMapping("/demo")
public class DemoController {
@Autowired
spring ioc注解
private DemoService demoService;
@ApiOperation("添加demo案例")
@ApiImplicitParams({
@ApiImplicitParam(name="demoid",value = "⾃增长主键,不传递"),
@ApiImplicitParam(name="demoname",value="传递字符串"),
@ApiImplicitParam(name="demostate",value = "状态,0-不可⽤;1-正常")    })
@GetMapping("/insert")
public BaseMessage insertDemo(Demo demo){
BaseMessage msg = new BaseMessage();
int rtn = demoService.insertDemo(demo);
msg.setCode(rtn);
if(rtn>0){
msg.setMsg("保存demo成功");
}else{
msg.setMsg("保存demo失败");
}
return msg;
}
实现效果:
swagger页⾯
点击Execut进⾏更新
结果如图所⽰,显⽰插⼊成功让我们来通过查询接⼝看看结果
其他杂项
公共⼯具类(⽤于返回⼀些成功或者失败的信息,“不太重要”)
数据库配置
总结
写了那么多⼀定有⼈好奇,既然是数据库操作那么怎么从头到尾⼀个sql语句没有看到呢?
这就是框架的强⼤之处,mybatis框架已经把基本的增删查改操作封装进了框架,基本的增删查改按照
上述步骤都可以实现。或者可以理解为这些基本的sql语句已经封装进了BaseMapper接⼝中,如果有其他需求,⽐如多表联查,则需要在dao层中与数据库交互的接⼝中定义⽅法,使⽤注解进⾏特殊sql语句的书写。(这只是⽅法之⼀,还有⼀个映射的⽅法还没学会)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。