mybatis mapper接口开发

目录

1.Mapper接口开发规范

2. 一个例子

3.执行过程解释


1.Mapper接口开发规范

mapper接口需要遵循以下几点规范:

  1. 创建一个接口,接口的全路径要和mapper文件的namespace值相同

  2. mapper文件中的每一条sql语句都要对应接口中的一个方法,并且sql的id值和方法名要相同

  3. 接口中方法的返回值类型要和sql语句上的resulttype值相同(若返回集合,resultType指定为集合中的泛型即可)

  4. 接口中的参数类型要和sql语句上的参数类型相同

2. 一个例子

首先有这样一张emp表,里面包含有列:id,name,job,salary。

然我我们创建和表对应的一个类:

package com.tedu;

public class Emp {
    private Integer id;
    private String name;
    private String job;
    private Integer salary;

    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getJob() {
        return job;
    }

    public Integer getSalary() {
        return salary;
    }

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

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

    public void setJob(String job) {
        this.job = job;
    }

    public void setSalary(Integer salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", Job='" + job + '\'' +
                ", salary=" + salary +
                '}';
    }
}

接下来有EmpMapper.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.tedu.EmpMapper">
    <!--
        select标签
        update标签
        delete标签
        insert标签
    -->
    <!--    resultType结果类型-->
    <select id="findAll" resultType="com.tedu.Emp">
        select * from emp;
    </select>
</mapper>

接口文件EmpMapper

package com.tedu;

import java.util.List;

public interface EmpMapper {
    public List<Emp> findAll();
}

执行示例:

@Test
    public void findAll() throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(in);
        SqlSession session =factory.openSession();
        EmpMapper mapper =session.getMapper(EmpMapper.class);
        List<Emp> list= mapper.findAll();
        for(Emp e:list){
            System.out.println(e);
        }
    }

3.执行过程解释

seeion.getMapper方法,传入的是表示EmpMapper接口的class对象,在框架底层,可以通过Class对象,为接口提供一个实现类,并基于实现类,创建一个实例,也就是EmpMapper接口的子类实例

通过mapper接口的子类实例调用findAll方法,findAll方法可以获取当前接口的全路径+方法名,有于接口全路径+方法名=namespace+sql的id值,所以,可以找到要执行的SQL语句,执行后处理结果并返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值