Java进阶开源框架-SpringBoot系列mybatis

SpringBoot整合Mybatis纯注解实现简单增删改查

2020-01-31  本文已影响0人  我永远喜欢御坂美琴

一.环境搭建

1.创建项目

此处可使用idea自带的SpringBoot项目创建工具进行创建,选中自己所需模块即可

创建项目

使用maven进行项目管理,其中pom.xml文件中会生成以下依赖(SpringBoot开启了所需功能的启动器,会自动将你所需模块可能用到的jar全部导入)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

2.配置数据源

在resources目录下创建application.yml配置文件,SpringBoot会自动识别并将其作为该项目的总配置文件

创建yml配置文件

之后须在该文件中配置数据源,此处使用SpringBoot默认数据源,为hikari

注:springboot1.0时数据源默认使用的是tomcat,2.0以后换成了hikari
1.0时,只要导入jdbc、jpa或者mybatis三者依赖之一,默认就带上tomcat数据源
2.0以后只要导入jdbc、jpa或者mybatis三者依赖之一,默认就带上hikari数据源

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/database_name?serverTimezone=GMT%2B8
    username: root
    password: 12345

楼主使用的Mysql版本是8.0.18,其中url需指定时区即serverTimezone=GMT%2B8指定东八区,驱动类的位置相较之前较早版本也发生了变化

二.写代码!

1.实体类

public class JavaBean {
    private Integer id;
    private String name;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

注:该类中的两个成员变量均与数据库所建表的列名保持一致

2.Dao层

@Repository
public interface DaoMapper {

    @Select("select * from javabean")
    List<JavaBean> SelectAll();

    @Select("select * from javabean where id=#{id}")
    JavaBean SelectOne(Integer id);

    @Delete("delete from javabean where id=#{id}")
    int DeleteOne(Integer id);

    @Insert("insert into javabean (id,name) values(#{id},#{name})")
    int InsertOne(JavaBean javaBean);

    @Update("update javabean set name=#{name} where id=#{id}")
    int UpdateOne(JavaBean javaBean);
}

加上@Repository注解,加上该注解的类作为Dao对象(此处为接口),同时需在SpringBoot启动类加上@MapperScan("Dao接口所处的全包名"),Mybatis将自动扫描这个包,找到被@Repository标记的接口,使用动态代理实现方法增强,并交由SpringBoot进行管理。经过这一系列操作,我们就可以将其注入了。

3.Controller

@Controller
@ResponseBody
public class JavaBeanController {

    @Autowired
    DaoMapper daoMapper;

    @GetMapping("/SelectAll")
    List<JavaBean> SelectAll(){
        return daoMapper.SelectAll();
    }

    @GetMapping("/SelectOne/{id}")
    JavaBean SelectOne(@PathVariable Integer id){
        return daoMapper.SelectOne(id);
    }

    @DeleteMapping("/DeleteOne/{id}")
    int DelectOne(@PathVariable Integer id){
        return daoMapper.DeleteOne(id);
    }

    @PostMapping("/InsertOne")
    int InsertOne(@RequestBody JavaBean javaBean){
        return daoMapper.InsertOne(javaBean);
    }

    @PutMapping("/UpdateOne")
    int UpdateOne(@RequestBody JavaBean javaBean){
        return daoMapper.UpdateOne(javaBean);
    }
}

API最好遵循RESTful API设计指南设计

GET(SELECT):从服务器取出资源(一项或多项)
POST(CREATE):在服务器新建一个资源
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)
DELETE(DELETE):从服务器删除资源

三.调试API

此处使用Postman进行API调试
补充一下发送带请求体请求的方法


类型为json
编写需发送的json

四.总结

如有错误,还劳烦大佬指正,感激不尽

2020.1.31 深夜2:49

上一篇下一篇

猜你喜欢

热点阅读