SpringBoot 集成Mybatis,Swagger,mysql

        SpringBoot框架已经成为越来越多企业的选择,约定大于配置的特性,使其可以快速开发,程序员也能很快上手,在与数据库交互方面,所使用的主流的两种ORM对象关系框架:hibernate,Mybatis,Mybatis因其对数据库操纵的灵活性更受青睐,MVC三层模式到前后端分离开发模式,Swagger架起了前后端的桥梁,更加直观的测试与展示接口。本文主要搭建一个纯净的springbootDemo框架,集成了Mybatis,Swagger,并创建了具有Restful规范的增删改查接口示例,关注微信公众号(菜鸟阿都)并回复:spingboot,即可获得源码。

  1.  初始化Springboot空项目

        官网:https://start.spring.io/

                                         

  2. 项目源码说明

    项目目录结构

                                        

创建数据库(Adu-Demo)及表(user) 

create database adu-demo;
use adu-demo;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

集成Mybatis 

 pom.xml文件(添加mybatis依赖及数据库驱动)

 <dependencies>
    <!--mysql数据库驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <!-- Mybatis -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.1.3</version>
    </dependency>
  </dependencies>

application.properties文件(配置数据库)

# mysql数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/Adu-Demo?useUnicode=true&characterEncoding=utf8
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=账号(默认:root)
spring.datasource.password=密码
# mapper.xml路径配置
mybatis.mapper-locations=classpath:mybatis/*.xml

Controller控制器(增删改查)

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    // 查询
    @GetMapping("/find")
    public List<User> findAll(){
        return userService.findAll();
    }
    // 添加
    @PostMapping("/insert")
    public void Insert(@RequestBody  User user){
         userService.Insert(user);
    }
    // 更新
    @PutMapping("/update")
    public void Update(@RequestBody User user){
        userService.Update(user);
    }
    // 删除
    @DeleteMapping("/delete")
    public void Delete(@RequestParam("id") int id){
        userService.Delete(id);
    }
}

Entity实体类

    @Data是lombok插件的注解,使实体类自动生成构造方法,getter/setter方法,使代码更加简洁,开发更加高效,但同时需要注意:lombok也有其缺点

@Data
public class User {
    public int id;
    public String name;
}

Service服务类

        service服务层一般在此处处理业务逻辑

@Service
public class UserService implements IUserService{
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> findAll(){
        return userMapper.findAll();
    }
    @Override
    public void Insert(User user){
        userMapper.Insert(user);
    }
    @Override
    public void Update(User user){
        userMapper.Update(user);
    }
    @Override
    public void Delete(int id){
        userMapper.Delete(id);
    }
}

Mapper接口方法

public interface UserMapper {      List<User> findAll();    void Insert(User user);    void Update(User user);    void Delete(int id);}

Mapper.xml映射文件:通过id与mapper.java文件映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.adu.springbootdemo.mapper.UserMapper">
    <select id="findAll" resultType="com.adu.springbootdemo.domain.User">
        SELECT * FROM user
    </select>
    <insert id="Insert" parameterType="com.adu.springbootdemo.domain.User" useGeneratedKeys="true" keyProperty="id">
        insert into user(id, name) values(#{id}, #{name})
    </insert>
     <update id="Update" parameterType="com.adu.springbootdemo.domain.User">
        update user set name=#{name} where id=#{id}
    </update>
    <delete id="Delete">
        delete from user where id=#{id}
    </delete>
</mapper>

 集成Swagger

pom.xml文件(添加Swagger依赖)

<!-- swagger -->
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.9.2</version>
</dependency>
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.9.2</version>
</dependency>

swagger配置类

// swagger集成参考:http://www.hellojava.com/a/88686.html
@Configuration // 说明这是一个配置类
@EnableSwagger2// 该注解开启Swagger2的自动配置
public class SwaggerConfig {  //随便的一个类名
    @Bean
    public Docket docker(){
        // 构造函数传入初始化规范,这是swagger2规范
        return new Docket(DocumentationType.SWAGGER_2)
                //apiInfo:添加api详情信息,参数为ApiInfo类型的参数,这个参数包含了第二部分的所有信息比如标题、描述、版本之类的,开发中一般都会自定义这些信息
                .apiInfo(apiInfo())
                .groupName("都珍文")
                //配置是否启用Swagger,如果是false,在浏览器将无法访问,默认是true
                .enable(true) 
                .select()
                //apis:添加过滤条件,
                .apis(RequestHandlerSelectors.basePackage("com.adu.springbootdemo.controller"))
                //paths:这里是控制哪些路径的api会被显示出来,比如下方的参数就是除了/user以外的其它路径都会生成api文档
                .paths((String a) ->
                        !a.equals("/user"))
                .build();
    }
    private ApiInfo apiInfo(){
        Contact contact = new Contact("名字:name", "个人链接:http://xxx.xxx.com/", "邮箱:XXX");
        return new ApiInfo(
                      "SpringBootDemo", // 标题
                      "springboot 整合mybatis、swagger,mysql数据库,并创建具有restful风格的增删改查示例", // 描述
                      "版本内容:v1.0", // 版本
                      "链接:http://terms.service.url/", // 组织链接
                       contact, // 联系人信息
                      "许可:Apach 2.0 ", // 许可
                      "许可链接:XXX", // 许可连接
                      new ArrayList<>()// 扩展
        );
    }
}

访问: http://localhost:8097/swagger-ui.html

                                         

关注微信公众号(菜鸟阿都)获得源码,回复:springboot

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值