javaweb各种框架组合案例(八):springboot+mybatis-plus+restful
一、介绍
1. springboot是spring项目的总结+整合
当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间还会出现冲突,让你的项目出现难以解决的问题。基于这种情况,springboot横空出世,在考虑到struts控制层框架有漏洞,springboot放弃(大多数企业同样如此)了struts,转而代之是springmvc,不过,springboot是自动集成springmvc的,不需要任何配置,不需要任何依赖,直接使用各种控制层注解。springboot是springcloud的基础,是开启微服务时代的钥匙。
2. mybatis-plus
mybatis-plus是国内大佬基于mybatis基础上的一个增强版,其核心是basemapper,这是一个通用版的dao接口,有着比较完善的crud操作,使用时只需将自己的dao接口继承basemapper即可,类似于之前中的核心dao思想。
二、新建springboot工程
1. 使用idea2019新建project,选择spring initializr,next
2. 填写坐标信息,next
3. developer tools选择lombok, web选择spring web starter,sql选择mysql driver,next
由于工程依赖中不包括mybatis-plus,所以稍后需要在pom中额外加入mybatis-plus依赖
lombok是为了省去实体类中getter/setter方法,使之在运行时动态添加getter/setter
4. 填写项目名已经存放位置,finish
三、项目构建
1. 数据库准备
create database mybatis_plus; drop table if exists user; create table user ( id bigint(20) not null comment '主键id', name varchar(30) null default null comment '姓名', age int(11) null default null comment '年龄', email varchar(50) null default null comment '邮箱', primary key (id) ); delete from user; insert into user (id, name, age, email) values (1, 'jone', 18, 'test1@baomidou.com'), (2, 'jack', 20, 'test2@baomidou.com'), (3, 'tom', 28, 'test3@baomidou.com'), (4, 'sandy', 21, 'test4@baomidou.com'), (5, 'billie', 24, 'test5@baomidou.com');
2. pom.xml
在原有基础上添加
<!-- mybatis-plus --> <dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus-boot-starter</artifactid> <version>3.1.2</version> </dependency>
3. 配置文件
application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useunicode=true&characterencoding=utf-8&usessl=false&servertimezone=gmt spring.datasource.username=root spring.datasource.password=root
4.项目包结构
5. 实体类user
package club.xcreeper.springboot_mybatis_plus.entity; import lombok.data; @data public class user { private long id; private string name; private integer age; private string email; }
6. dao层
package club.xcreeper.springboot_mybatis_plus.dao; import club.xcreeper.springboot_mybatis_plus.entity.user; import com.baomidou.mybatisplus.core.mapper.basemapper; public interface userdao extends basemapper<user> { }
7. service层
package club.xcreeper.springboot_mybatis_plus.service; import club.xcreeper.springboot_mybatis_plus.entity.user; public interface userservice { user getone(long id); user findbynameandage(string name,integer age); }
package club.xcreeper.springboot_mybatis_plus.service.impl; import club.xcreeper.springboot_mybatis_plus.dao.userdao; import club.xcreeper.springboot_mybatis_plus.entity.user; import club.xcreeper.springboot_mybatis_plus.service.userservice; import com.baomidou.mybatisplus.core.conditions.query.querywrapper; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.service; @service public class userserviceimpl implements userservice { @autowired private userdao userdao; @override public user getone(long id) { return userdao.selectbyid(id); } @override public user findbynameandage(string name, integer age) { return userdao.selectone(new querywrapper<user>().eq("name",name).eq("age",age)); } }
8. controller层
package club.xcreeper.springboot_mybatis_plus.controller; import club.xcreeper.springboot_mybatis_plus.entity.user; import club.xcreeper.springboot_mybatis_plus.service.userservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.pathvariable; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; @restcontroller @requestmapping("/user") public class usercontroller { @autowired private userservice userservice; @getmapping(value = "/{id}") public user getone(@pathvariable long id){ return userservice.getone(id); } @getmapping(value = "/getuser",params = {"name","age"}) public user findbynameandage(string name,integer age){ return userservice.findbynameandage(name,age); } }
9. 需要在启动类上加@scanmapper注解
package club.xcreeper.springboot_mybatis_plus; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; @springbootapplication @mapperscan("club.xcreeper.springboot_mybatis_plus.dao") public class springbootmybatisplusapplication { public static void main(string[] args) { springapplication.run(springbootmybatisplusapplication.class, args); } }
10. 启动项目,并使用postman进行接口测试
测试getone接口
测试findbynameandage接口
上一篇: 实战分析:事务的隔离级别和传播属性
下一篇: 电子邮箱注册与使用的图文方法步骤
推荐阅读
-
javaweb各种框架组合案例(六):springboot+spring data jpa(hibernate)+restful
-
javaweb各种框架组合案例(三):maven+spring+springMVC+hibernate
-
javaweb各种框架组合案例(八):springboot+mybatis-plus+restful
-
javaweb各种框架组合案例(五):springboot+mybatis+generator
-
javaweb各种框架组合案例(四):maven+spring+springMVC+spring data jpa【失败案例】
-
javaweb各种框架组合案例(六):springboot+spring data jpa(hibernate)+restful
-
javaweb各种框架组合案例(三):maven+spring+springMVC+hibernate
-
javaweb各种框架组合案例(八):springboot+mybatis-plus+restful
-
javaweb各种框架组合案例(五):springboot+mybatis+generator
-
javaweb各种框架组合案例(四):maven+spring+springMVC+spring data jpa【失败案例】