SpringBoot-18-Mybatis基础操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: SpringBoot-18-Mybatis基础操作

SpringBoot-18-Mybatis基础操作

什么是Mybatis?


mybatis是apache的一个开源项目ibatis,2010年正式改名为mybatis。他是一个Java的持久层框架,ibatis提供的持久层框架包含 SqL Maps和Data Access Objects(Daos)



Mybatis特点:



Mybatis简单易学:可以通过官方文档,快的掌握和实现开发


支持动态sql编写


降低sql和代码的高耦合性,将业务层和数据访问层分开


为什么我们要介绍Mybatis呢?这是因为在国内很多公司都在使用Mybtais,我们今天就简单介绍一下Mybatis的基础操作增删改查。

代码实现

创建项目以后在pom.xml中添加mysql驱动和mybtis的相关依赖

        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--mybatis依赖-->
        <!-- 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>2.2.2</version>
        </dependency>




b85aa3a6785e468ea83d213ae5670c11.png


在application.yml中添加数据库配置

server:
  port: 8899
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver


  • 在这里我们使用默认的数据源(数据源配置之后会单独进行讲解)

创建表中对应表和实体类

我们还是用之前创建的student表,具体sql可以查看Spring-Data-JPA多数据源配置章节,里面有具体实现Student的sql,现在我们只创见Student的实体类

@Data
public class Student implements Serializable {
    /**
     * ID
     */
    private Long id;
    /**
     * 学生姓名
     */
    private String name;
    /**
     * 性别默认男
     */
    private String sex;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 注册手机号
     */
    private String mobile;
    /**
     * 注册邮箱
     */
    private String email;
    private Date createDate;
    private Date updateDate;
    /**
     * 帐户是否可用(1 可用,0 删除用户)
     */
    private Integer isEnabled;
    private static final long serialVersionUID = 1L;
}


创建实体类对应的mapper

本次我们介绍的是直接在StudentMapper中实现sql,不适用其他xml实现mapper的方式(下一章节单独介绍)

public interface StudentMapper {
    @Select("SELECT * FROM STUDENT WHERE ID = #{id}")
    Student  findById(@Param("id") Long id);
    @Update("UPDATE STUDENT SET NAME=#{name},SEX=#{sex},AGE=#{age},EMAIL=#{email},MOBILE=#{mobile} WHERE id=#{id}")
    void updateStudent(Student student);
    @Insert("INSERT INTO STUDENT(NAME, SEX,AGE,EMAIL,MOBILE) VALUES(#{name}, #{sex}, #{age}, #{email}, #{mobile})")
    int insert(@Param("name") String name,
               @Param("sex") String sex,
               @Param("age") Integer age,
               @Param("email") String email,
               @Param("mobile") String mobile
               );
    @Insert("INSERT INTO STUDENT(NAME, SEX,AGE,EMAIL,MOBILE) VALUES(#{name}, #{sex}, #{age}, #{email}, #{mobile})")
    int insertByObject(Student student);
}


  • 在传递数据进行数据的增和改的时候有几种常用的尝试


mybatis注解 说明
@Param 格式例如mapper中的insert方法,很好理解
使用对应传递 格式 例如mappe中insertByObject方法的实现


创建Service接口

创建StudentService接口

public interface StudentService {
    int insert( String name,
                String sex,
                Integer age,
               String email,
                String mobile
    );
    Student  updateStudent(Student student);
    int insertByObject(Student student);
    Student findById( Long id);
}


实现Service接口的实现

创建StudentServiceImpl去实现StudentService

@AllArgsConstructor
@Service
public class StudentServiceImpl implements StudentService {
    private StudentMapper studentMapper;
    @Override
    public int insert(String name, String sex, Integer age, String email, String mobile) {
        int insert = studentMapper.insert(name, sex, age, email, mobile);
        return  insert;
    }
    @Override
    public int insertByObject(Student student){
        return  studentMapper.insertByObject(student);
    }
    @Override
    public  Student  updateStudent(Student student){
        studentMapper.updateStudent(student);
        return  student;
    }
    @Override
    public Student findById( Long id) {
        return studentMapper.findById(id);
    }
}

控制层的实现

创建StudentController去实现控制层

@Slf4j
@RequestMapping("/student")
@RestController
public class StudentController {
    @Autowired
    private StudentService studentService;
    @GetMapping("create")
    public int create(String name, String sex, Integer age, String email, String mobile) {
        int insert = studentService.insert(name, sex, age, email, mobile);
        return  insert;
    }
    @PostMapping("insert")
    public int insertByObject(@RequestBody Student student){
        return  studentService.insertByObject(student);
    }
    @PostMapping("update")
    public Student updateStudent(@RequestBody Student student) {
      return   studentService.updateStudent(student);
    }
    @GetMapping("/select/{id}")
    public Student findByName(@PathVariable("id") Long id) {
        return studentService.findById(id);
    }
}

测试

使用postman测试一下分别测试一下接口:


http://localhost:8899/student/select/11 GET方法


http://localhost:8899/student/update POST方法


http://localhost:8899/student/create POST方法


测试结果如下:




3ff9018c9b474afd90e5245b849f2cae.png



如果您觉得本文不错,欢迎点击下方关注支持,您的关注是我坚持的动力!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
存储 Java 数据库连接
MyBatis-Plus 基础操作指南:实现高效的增删改查
MyBatis-Plus 基础操作指南:实现高效的增删改查
574 0
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查的基础操作
基于MyBatis的增删改查的基础操作
34 0
|
5月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
66 2
|
5月前
|
SQL Java 数据库连接
MyBatis入门——MyBatis的基础操作(2)
MyBatis入门——MyBatis的基础操作(2)
27 4
|
5月前
|
SQL Java 数据库连接
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
|
6月前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之查询操作的详细解析
Javaweb之Mybatis的基础操作之查询操作的详细解析
66 0
|
6月前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
65 0
|
6月前
|
SQL 安全 Java
Javaweb之Mybatis的基础操作之删除的详细解析
Javaweb之Mybatis的基础操作之删除的详细解析
44 0
|
6月前
|
Java 关系型数据库 MySQL
Javaweb之Mybatis的基础操作的详细解析
Javaweb之Mybatis的基础操作的详细解析
24 0
|
SQL Java 数据库连接
基于MyBatis的增删改查的基础操作
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/81482092 MyBtais入...
1159 0