springboot使用mybatis进行数据绑定的两种方法

在进行数据绑定之前需要做的通用工作如下(文件目录如下图):
springboot使用mybatis进行数据绑定的两种方法_第1张图片
1、建立好相应的数据表;
2、新建工程,加入mysql、JDBC、mybatis支持;
3、新建mybatis-config.xml文件,内容如下(我直接使用的application.yml配置数据库连接参数,在mybatis-config.xml中进行读取,也可直接写在mybatis-config.xml中,但启动工程时会有一个数据库连接错误之类的报错)

spring:
  datasource:
    url: jdbc:mysql://10.0.75.1:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

以下mappers标签,注意我的目录结构





    
    
    
    
        
            
            
                
                
                
                
                
            
        
    
    
        
    

4、写好实体数据库对应的Bean;

package com.backman.trymybatis.bean;

public class Employee {

    private Integer id;
    private String last_name;
    private String gender;
    private String email;

    public Integer getId() {
        return id;
    }

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

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", last_name='" + last_name + '\'' +
                ", gender='" + gender + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

方法一:传统方法
1、建立EmployeeMapper.xml,注意文件中的“com.backman.trymybatis.conf.EmployeeMapper”参看我的目录结构,这其实是这个XML文件对应的命名空间
下面文件中的“resultType”是指数据的封装规则,我当前是把查询出来的数据封装成employee对象




    

2、写测试方法,注意下面的“com.backman.trymybatis.conf.EmployeeMapper.selectEmployeeById”,对应的是EmployeeMapper.xml文件而不是“com.backman.trymybatis.mapper.EmployeeMapper”,也就是在传统方法下不需要建mapper.EmployeeMapper.class文件
传统方法中使用的是session.selectOne方法

package com.backman.trymybatis;

import com.backman.trymybatis.bean.Employee;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.IOException;
import java.io.InputStream;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TrymybatisApplicationTests {

    @Test
    public void contextLoads() {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        try {
           Employee employee = session.selectOne("com.backman.trymybatis.conf.EmployeeMapper.selectEmployeeById", 1);
            System.out.println(employee);
        } finally {
            session.close();
        }
    }

}

方法二:mybatis官方推荐方法(使用接口的方式)
1、建立EmployeeMapper.class文件,注意我的目录结构,代码如下:

package com.backman.trymybatis.mapper;

import com.backman.trymybatis.bean.Employee;

public interface EmployeeMapper {
    public Employee selectEmployeeById(Integer id);
}

2、建立EmployeeMapper.xml,注意文件中的“com.backman.trymybatis.mapper.EmployeeMapper”参看我的目录结构,这其实是对应的是mapper目录下的EmployeeMapper.class




    

3、编写测试方法,推荐方法中使用的是 mapper.selectEmployeeById方法,这个方法是在EmployeeMapper.class接口中的,与EmployeeMapper.xml中的select id="selectEmployeeById"是对应的

package com.backman.trymybatis;

import com.backman.trymybatis.bean.Employee;
import com.backman.trymybatis.mapper.EmployeeMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.IOException;
import java.io.InputStream;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TrymybatisApplicationTests {

    @Test
    public void contextLoads() {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        try {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            Employee employee = mapper.selectEmployeeById(1);
            System.out.println(employee);
        } finally {
            session.close();
        }
    }

}

你可能感兴趣的:(springboot学习,mybatis)