您当前的位置: 首页 >  mybatis

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

springboot2.0X整合mybatis注解版示例

小志的博客 发布时间:2019-11-12 10:41:12 ,浏览量:1

一、建表

1、在本地创建一个名字为mybatis的数据库,该数据库中的department表的建表语句如下

CREATE TABLE `department` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `departmentName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

在这里插入图片描述

二、配置文件如下:

1、springboot项目创建过程省略,pom.xml文件需要引入如下依赖:

		 
        
            log4j
            log4j
            1.2.17
        
        
        
            org.springframework.boot
            spring-boot-starter-data-jdbc
        
       
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.1
        
       
        
            mysql
            mysql-connector-java
            5.1.46
        
       
        
            com.alibaba
            druid
            1.1.21
        

2、application.yml的配置如下:

spring:
  datasource:
    #   数据源基本配置
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis
    type: com.alibaba.druid.pool.DruidDataSource
    #   数据源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    #引入部门和员工的创建表sql文件
#    schema:
#      - classpath:sql/department.sql
#      - classpath:sql/employee.sql
#    initialization-mode: ALWAYS


3、log4j.properties配置如下:为了测试只简单配置了日志

log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
三、注解版代码如下:

1、目录层次如下图:下面的所有操作都是在该目录结构中操作 在这里插入图片描述 2、在bean文件夹下创建Department实体类,如下代码:

package com.rf.springboot.bean;


public class Department {
    private Integer id;
    private String departmentName;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    @Override
    public String toString() {
        return "Department{" +
                "id=" + id +
                ", departmentName='" + departmentName + '\'' +
                '}';
    }
}

3、在mapper文件夹下创建DepartmentMapper接口,如下代码:

package com.rf.springboot.mapper;

import com.rf.springboot.bean.Department;
import org.apache.ibatis.annotations.*;

/**
 * 指定一个操作数据库的mapper
 * @Mapper 如果mapper文件过多可以在springboot应用中加@MapperScan(value = "com.rf.springboot.mapper"),而不用每个mapper接口都加Mapper注解
 * */
@Mapper
public interface DepartmentMapper {

    @Select("select * from department where id=#{id}")
    public Department getDepartmentId(Integer id);

    @Delete("delete from department where id=#{id}")
    public  int deleteDepartmentId(Integer id);

    @Options(useGeneratedKeys = true,keyProperty = "id")//新增时自动为主键id新增值
    @Insert("insert into department(departmentName) values(#{departmentName})")
    public int insertDepartment(Department department);

    @Update("update department set departmentName=#{departmentName} where id=#{id}")
    public int updateDepartment(Department department);
}

4、在controller文件夹下创建DepartmentController类,如下代码:

package com.rf.springboot.controller;

import com.rf.springboot.bean.Department;
import com.rf.springboot.mapper.DepartmentMapper;
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.RestController;

@RestController
public class DepartmentController {
    @Autowired
    DepartmentMapper departmentMapper;
	/**
	 * 根据部门id查询
     */
    @GetMapping("/dept/{id}")
    public Department getDepartmentId(@PathVariable("id") Integer id){
        return  departmentMapper.getDepartmentId(id);
    }
     /**
	 * 新增部门数据
     */
    @GetMapping("/dept")
    public Department insertDepartment(Department department){
         departmentMapper.insertDepartment(department);
         return department;
    }
}

5、启动springboot应用,在浏览器访问新增请求,如下图: 在这里插入图片描述在这里插入图片描述 6、启动springboot应用,在浏览器访问查询请求,如下图: 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.2050s