04mybatis mapper使用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zw524362419/article/details/78939973

mybatis mapper使用方法

mapper方式的组成部分:pojo.java、mapper.java(相当于传统的statementid的dao接口)和mapper.xml

具体实现

重点:
mapper使用方式要遵循以下四个规范:

  1. mapper.xml的namespace的ID要和mapper的包路径一样

如下

<mapper namespace="com.cmhy.mapper.BusinessApplyMapper">
  1. mapper.java的方法名要和mapper.xml中的statementid一致
  2. mapper.java的方法输入参数要和mapper.xml中的paramterType类型一致
  3. mapper.java的方法的返回值要和mapper.xml中的resultType类型一致
    细节如下:
    2.1 pojo.java如下
@Getter
@Setter
@ToString
public class BusinessApply {
    private Integer id;
    private String name;
    private String businessNo;
    private String businessType;
    private Integer businessSum;
}

2.2 mapper.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.cmhy.mapper.BusinessApplyMapper">
    <select id="findByNo" parameterType="java.lang.String"
        resultType="com.cmhy.model.BusinessApply">
        select * from business_apply where business_no = #{value}
    </select>
    <select id="findByName" parameterType="java.lang.String"
        resultType="com.cmhy.model.BusinessApply">
        select * from business_apply where name like '%${value}%'
    </select>
    <select id="findIdByName" parameterType="java.lang.String"
        resultType="java.lang.Integer">
        select id from business_apply where name like #{value}
    </select>
    <update id="updateById" parameterType="int">
        update business_apply set business_sum = 12.00 where id = #{value}
    </update>
    <update id="deleteById" parameterType="int">
        delete from business_apply where id = #{value}
    </update>
</mapper>

2.3 mapper.java文件如下:

package com.cmhy.mapper;

import java.util.List;
import com.cmhy.model.BusinessApply;

public interface BusinessApplyMapper {
    public BusinessApply findByNo(String businessNo);
    public List<BusinessApply> findByName(String name);
    public List<Integer> findIdByName(String name);
    public void updateById(Integer id);
    public void deleteById(Integer id);
}

2.4 测试类如下:

package com.cmhy.dao;

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

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.Before;
import org.junit.Test;

import com.cmhy.mapper.BusinessApplyMapper;

public class BusinessApplyDaoTest {
    private SqlSessionFactory sqlSessionFactory;
    @Before
    public void sqlSessionFactory() throws IOException {
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
    }
    @Test
    public void testFindByNo() {

    }

    @Test
    public void testFindByName() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        BusinessApplyMapper baMapper = sqlSession.getMapper(BusinessApplyMapper.class);
        baMapper.findByName("个贷");
        System.out.println("***********"+baMapper.findByName("个贷"));
        sqlSession.close();
    }

    @Test
    public void testFindIdByName() {
    }

    @Test
    public void testUpdateById() {
    }

    @Test
    public void testDeleteById() {
    }

}

总结
mapper.java接口方法参数只能有一个,所以使用包装类型的pojo满足不同的业务需求。系统使用不是太方便。
注意:service层的方法入参不建议使用包装类型

猜你喜欢

转载自blog.csdn.net/zw524362419/article/details/78939973