欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

程序员文章站 2022-04-23 15:13:18
一、介绍 1. springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间还会出现冲突,让你的项目出现难以解决的问题。基于这种情况,springboot横空出世,在考虑到S ......

一、介绍

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

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

 

2. 填写坐标信息,next

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

 

 3. developer tools选择lombok, web选择spring web starter,sql选择mysql driver,next

  由于工程依赖中不包括mybatis-plus,所以稍后需要在pom中额外加入mybatis-plus依赖

  lombok是为了省去实体类中getter/setter方法,使之在运行时动态添加getter/setter

 javaweb各种框架组合案例(八):springboot+mybatis-plus+restful javaweb各种框架组合案例(八):springboot+mybatis-plus+restfuljavaweb各种框架组合案例(八):springboot+mybatis-plus+restful

 

4. 填写项目名已经存放位置,finish

 javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

 

三、项目构建

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.项目包结构

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

 

 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接口

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

  测试findbynameandage接口

 javaweb各种框架组合案例(八):springboot+mybatis-plus+restful