Springboot基础学习之(十五):通过Mybatis框架实现对数据库的操作

什么是Mybatis框架?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

为什么要使用Mybatis框架?

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件。易于学习,易于使用。通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

  • 提供映射标签,支持对象与数据库的ORM字段关系映射。

  • 提供对象关系映射标签,支持对象关系组建维护。

  • 提供xml标签,支持编写动态sql。

 Mybatis则是在实现自动化过程的一个代表成果,减少手动对与sql信息交互的配置,极大的解放了双手。

本篇文章则是在上一篇文件的进阶,通过Mybatis框架来实现对数据库的操作,在博主的spring boot的专栏内容里,前几篇已经通过代码来实现对数据的库的操作。

通过Mybatis框架来实现对数据库的操作

一:导入Mybatis环境的依赖

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.3.0
        

实现的功能是对数据库的操作

数据库中数据

Springboot基础学习之(十五):通过Mybatis框架实现对数据库的操作_第1张图片

 关于对数据库的连接前面的一篇文章已经讲解的十分详细了,有不明白的可以查看一下Springboot实现对数据库的连接在已经连接成功的基础上:实现对数据库的操作

二:创建pojo实体类:存储信息   boys.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class boys {

    private int id;
    private String boyName;
    private int userCP;

}

注意;这里出现的三种注解全都是lombok包下的方法,所以需要提前导入lombok依赖

        
            org.projectlombok
            lombok
        

三:创建接口:接口定义存放着数据库的操作方法

注意:这个代码实现流程需要一个注解mapper

@Mapper: 这个注解一般使用在Dao层接口上,相当于一个mapper.xml文件,它的作用就是将接口生成一个动态代理类。加入了@Mapper注解,目的就是为了不再写mapper映射文件。这个注解就是用来映射mapper.xml文件的。

使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中

注意:在Dao层不要存在相同名字的接口,也就是在Dao不要写重载。因为mapper文件是通过id与接口进行对应的,如果写了两个同名的接口,就会导致mapper文件映射出错。
 

定义一个接口:boysMapper

import com.mybatis.demo.pojo.boys;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface boysMapper {
    List queryboysList();     //查询数据库全部的信息

    boys queryboysId(int id);       //查询指定信息

    int addboys(boys boys);         //添加用户

    int updateboys(boys boys);      //更新用户

    int deletaboys(boys boys);      //删除用户  

}

 接口实现完成了,并标注的Mapper注解,接下来则是通过映射文件,去实现对应相应的类文件

创建xml文件实现,方法重载接口中创建的方法






    
    
    
        insert into mybatis.user(id, boyName, userCP)
        values (#{id},#{boyName},#{userCP});
    
    
        update mybatis.user set boyName=#{boyName},userCP=#{userCP} where id=#{id}
    
    
        delete from mybatis.user where id=#{id}
    

关于创建的xml文件以及创建的Mapper几口,如何实现被扫描到?

在配置文件进行扫描的配置

mybatis.type-aliases-package=com.mybatis.demo.pojo
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

 这两行则是确保刚才创建的文件能够被扫描到,并能够被springboot项目所能够管理。

创建Controller类实现:对数据库的操作

package com.mybatis.demo;

import com.mybatis.demo.Mapper.boysMapper;
import com.mybatis.demo.pojo.boys;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

@RestController
public class boyController {
    @Resource
    private boysMapper boysMapper;
    @RequestMapping("/show")
    public List queryboysList(){
        List boysList = boysMapper.queryboysList();
        for (boys boys: boysList){
            System.out.println(boys);
        }
        return boysList;
    }
    @RequestMapping("/queryUser/{id}")
    public boys queryUserById(@PathVariable("id") int id){
        return boysMapper.queryboysId(id);
    }
    @RequestMapping("/addUser")
    public String addUser(){
        int res = boysMapper.addboys(new boys(10,"不想睡醒的梦",123456));
        if (res == 1)
            return "OK";
        else
            return "ERROR";
    }
    @RequestMapping("/delete/{id}")
    public String deleteUser(@PathVariable("id") int id){
        int res = boysMapper.deletaboys(id);
        if (res == 1)
            return "OK";
        else
            return "ERROR";
    }
    @RequestMapping("/updateUser")
    public String updateUser(){
        int res = boysMapper.updateboys(new boys(10,"xxxx",111111));
        if (res == 1)
            return "OK";
        else
            return "ERROR";
    }
}

注意:代码实现的流程差不多相同,所以就不进行一一展示了

只展示查看表中的所有信息

 通过框架实现对数据库的操作成功

你可能感兴趣的:(小白学基础,spring,boot,spring,boot,学习,mybatis,java,数据库)