首页 > 其他分享 >SpringBoot-3.3.4最新快速入门教程二整合Mybatis

SpringBoot-3.3.4最新快速入门教程二整合Mybatis

时间:2024-09-24 12:51:41浏览次数:13  
标签:return SpringBoot song 入门教程 private public 3.3 id

Hello,大家好,我是Feri,一枚十多年的程序员,同时也是一名在读研究生,关注我,且看一个平凡的程序员如何在自我成长,CodingSir是我想打造一个编程社区,只为各位小伙伴提供编程相关干货知识,希望在自我蜕变的路上,我们一起努力,努力什么时候开始都不晚,我,从现在开始做起!

一、前言

        在上一篇教程中简单说了一下SpringBoot最新版本怎么快速入门,就有小伙伴在问,那怎么使用SpringBoot代替原来的SSM框架作为开发呀,好啦,本篇教程就是教你怎么用SpringBoot替代SSM,感受开发效率翻倍的快乐。

        本篇就是通过SpringBoot框架代替Spring+SpringMVC,整合Mybatis框架,来感受一下快速开发,SpringBoot框架推荐使用注解,并且只需application配置文件,就可以代替原来SSM的所有配置文件,那么咱们就开始吧。

 二、SpringBoot整合Mybatis

2.1 需求

我们现在实现一个喜欢歌单的操作,要求实现:喜欢歌曲的新增、修改、删除、查询操作

注意:喜欢歌曲的字段:歌曲名称、歌手姓名、歌曲类型、评分、用户名、日期

2.2 分析

我们这次使用技术栈:SpringBoot+Mybatis框架实现本次需求的操作

2.3 设计

接口设计:

1.查询接口使用Get请求,参数格式采用键值对的形式

2.新增、修改、删除操作,使用Post请求,参数格式采用Json格式

数据库设计:

设计一个数据库表,存储喜欢的歌曲信息

数据库脚本:

create database db_codingsir_song char set 'utf8mb4';

use db_codingsir_song;

CREATE TABLE t_user_song(
    `id` INT AUTO_INCREMENT COMMENT '序号,自增' ,
    `name` VARCHAR(11)   COMMENT '用户姓名' ,
    `sname` VARCHAR(20)   COMMENT '歌曲名称' ,
    `stype` VARCHAR(10)   COMMENT '歌曲类型' ,
    `score` INT   COMMENT '歌曲评分' ,
    `songer` VARCHAR(20)   COMMENT '歌手姓名' ,
    `create_time` DATETIME   COMMENT '创建时间' ,
    PRIMARY KEY (id)
)  COMMENT = '用户歌曲表';

2.4 编码

1.创建项目

2.依赖jar

在项目的pom.xml中实现jar的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.23</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

3.实现配置

在application.yaml中实现数据库和Mybatis相关配置

spring:
  datasource: #数据库链接相关配置
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///db_codingsir_song
    username: root
    password: xing1688
    
  jackson: #json格式日期设置
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

mybatis: #mybatis配置
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在开关类上,使用注解标记持久层包名:

@SpringBootApplication
@MapperScan(basePackages = "com.feri.springbootmybatis.dao")
public class SpringBootMybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootMybatisApplication.class, args);
    }

}

4.编写代码,实现功能

1.封装接口的统一结果对象

@Data
@NoArgsConstructor
@AllArgsConstructor
public class R<T> {
    private Integer code;
    private String msg;
    private T data;
    /**
     * 成功*/
    public static <T> R ok(T obj){
        return new R(0,"操作成功",obj);
    } 
    /**
     * 失败*/
    public static <T> R fail(T obj){
        return new R(1,"操作失败",obj);
    }
}

2.实体层

@Data
public class UserSong {
    private Integer id;
    private String name;
    private String sname;
    private String stype;
    private Integer score;
    private String songer;
    private Date createTime;
}

3.持久层

public interface UserSongDao {
    /**
     * 新增*/
    @Insert("insert into t_user_song(name,sname,stype,songer,score,create_time) values(#{name},#{sname},#{stype},#{songer},#{score},now())")
    int add(UserSong song);
    
    /**
     * 修改*/
    @Update("update t_user_song set sname=#{sname},stype=#{stype},songer=#{songer},score=#{score} where id=#{id}")
    int update(UserSong song);
    
    /**
     * 删除*/
    @Delete("delete from t_user_song where id=#{id}")
    int deleteById(Integer id);
    
    /**
     * 查询*/
    @Select("select * from t_user_song order by create_time desc")
    List<UserSong> all();
    
}

4.业务层

接口:

public interface UserSongService {
    /**
     * 新增*/
    R add(UserSong song);
    /**
     * 修改*/
    R update(UserSong song);
    /**
     * 删除*/
    R delete(Integer id);
    /**
     * 查询*/
    R queryAll();
}

实现类:

@Service
public class UserSongServiceImpl implements UserSongService {
    @Resource
    private UserSongDao dao;
    @Override
    public R add(UserSong song) {
        return dao.add(song)>0?R.ok(""):R.fail("亲,新增失败!");
    }
    @Override
    public R update(UserSong song) {
        return dao.update(song)>0?R.ok(""):R.fail("亲,修改失败!");
    }
    @Override
    public R delete(Integer id) {
        return dao.deleteById(id)>0?R.ok(""):R.fail("亲,删除失败!");
    }
    @Override
    public R queryAll() {
        return R.ok(dao.all());
    }
}

5.控制层

@RestController
@RequestMapping("/api/usersong/")
public class UserSongController {
    @Resource
    private UserSongService service;

    @PostMapping("save")
    public R save(@RequestBody UserSong song){
        return service.add(song);
    }
    @PostMapping("update")
    public R update(@RequestBody UserSong song){
        return service.update(song);
    }
    @PostMapping("delete")
    public R delete(Integer id){
        return service.delete(id);
    }
    @PostMapping("all")
    public R all(){
        return service.queryAll();
    }
}

2.5 测试

运行程序:

使用Idea自带的接口测试工具,对写好的4个接口进行测试

新增接口测试:

查询接口:

2.6 注解详解

在整个代码中,我们又使用了一些注解,那么接下来,整理一下我们刚刚使用的注解的各个作用,你需要背一下哈:

序号注解名用法作用
1@Service修饰类IOC创建对象,用在业务层
2@MapperScan修饰类扫描持久层,自动生成持久层接口实现类对象
3@Resource修饰属性为属性赋值,注入对象,先通过名称不存在再通过类型
4@Insert修饰方法设置对应新增SQL语句
5@Update修饰方法设置对应修改SQL语句
6@Delete修饰方法设置对应删除SQL语句
7@Select修饰方法设置对应查询SQL语句

三、总结

        以上就是使用SpringBoot整合Mybatis的最新代码,有没有感觉很简单好用?是不是要比之前的SSM强悍了很多,而且这次我们又使用了一些新的注解,已经给你整理好了,抓紧时间背背哈,如果对于SpringBoot还有什么需要学习或想要了解的,可以随时在评论区进行沟通交流,好了,你今天学习了吗?

        本篇源代码地址:点击,就可以下载源代码啦

        好啦,今天这篇就打这啦,有任何问题可以随时进行评论交流,如果你有什么想要Feri更新的,请关注CodingSir查看更新的内容,也可以随时关注,私信我哟,成长的路上,有你们相伴,真是人生一大幸事!

标签:return,SpringBoot,song,入门教程,private,public,3.3,id
From: https://blog.csdn.net/CodingSir168/article/details/142478820

相关文章