2021-10-23


mybatis简介

MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。
个人理解mybatis就是在JDBC的基础上做了一层封装,具体概念可以参考mybatis官网
—————————————————————————————————

一、创建spring项目并配置mybatis

选择创建spring项目,选择spring web,jdbc api 和mysql driver,一路next到finish.在项目文件中的src/java/resouse下有application.properties,将后缀名改为yml,同时在其中进行配置
application.yml配置如下

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/student?serverTimezone=GMT%2B8
    username: root                                 
    password: lin201418
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  mapper-locations: classpath*:mybatis*.xml 
  #*  *之间为mybatis配置sql语句位置,需要自己创建

二、数据操作

1.创建数据实体

新建dataelem类,在其中根据数据表创建data类
数据表如下:

在这里插入图片描述

package com.example.mybatissql.dataelem;

public class data {
    
    
    private int no;
    private String name;
    private String sex;
    private String password;
    public int getNo(){
    
    
        return this.no;
    }

    public void setNo(int no) {
    
    
        this.no = no;
    }

    public String getName() {
    
    
        return name;
    }

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

    public String getPassword() {
    
    
        return password;
    }

    public void setPassword(String password) {
    
    
        this.password = password;
    }

    public String getSex() {
    
    
        return sex;
    }

    public void setSex(String sex) {
    
    
        this.sex = sex;
    }
}

2.创建数据接口

创建接口供mybatis使用,本次创建的接口如下:

package com.example.mybatissql.test;

import com.example.mybatissql.dataelem.data;

import java.util.List;

public interface dataTest {
    
    
    List<data> listall();
}

3.数据服务

java代码如下

package com.example.mybatissql.Service;

import com.example.mybatissql.dataelem.data;
import com.example.mybatissql.test.dataTest;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service
public class dataService{
    
    
@
    private dataTest dat;
    public List<data> listall(){
    
    
        return dat.listall();
    }
}

4.请求处理

java代码如下

package com.example.mybatissql.Controller;

import com.example.mybatissql.Service.dataService;
import com.example.mybatissql.dataelem.data;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class dataController {
    
    
    private dataService ds;

    public dataController() {
    
    
        this.ds = new dataService();
    }

    @GetMapping("/listall")
    public List<data> listall(){
    
    
        return ds.listall();
    }

}

5.mybatis xml配置

UserMapper.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mybatissql.test.dataTest">
    <resultMap id="result" type="com.example.mybatissql.dataelem.data">
        <id column="no" property="no"/>
        <result column="name" property="name"/>
        <result column="password" property="password"/>
        <result column="sex" javaType="String" property="sex"/>
    </resultMap>
    --上面为数据库与实体变量映射
    <select id="listall" resultType="result">
        select * from test
    </select>
</mapper>

注意:如果实体类的成员变量名称与数据表的字段名称一模一样的话可以不做数据库表和实体类的映射,mybatis会自动根据字段封装数据,如果有些字段跟数据库表字段名称不一致,则需要做数据库表和实体类的映射,否则会封装不上数据,建议把映射都做上去。

6.main方法所在文件配置

package com.example.mybatissql;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@MapperScan({
    
    "com.example.mybatissql.test"})//
@RestController
public class MybatisSqlApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(MybatisSqlApplication.class, args);
    }
    @RequestMapping("/index")
    public String index(){
    
    
        return "hello";
    }
}

项目总体结构如下

在这里插入图片描述

三.测试

通过postman进行测试,测试结果如下
在这里插入图片描述

参考文章

菜鸟的mybatis实战教程_最强菜鸟-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_45747542/article/details/120926466