MyBaits学习之输入输出映射

总结:

  • 输入映射有:string(包装类、基本数据类型等同)、自定义的object、Map<String,Object>
  • 输出映射有:string(包装类、基本数据类型等同)、自定义的object、Map<String,Object>

输入输出映射的具体实现方式,以下附代码讲解。

  • 编写一个实体类

public class Province {
    private Integer provinceId;
    private String provinceName;
    private String provincePy;
    private int delFlag;

    public Province() {
    }

    public Province(String provinceName, String provincePy) {
        this.provinceName = provinceName;
        this.provincePy = provincePy;
    }

    public Integer getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Integer provinceId) {
        this.provinceId = provinceId;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getProvincePy() {
        return provincePy;
    }

    public void setProvincePy(String provincePy) {
        this.provincePy = provincePy;
    }

    public int getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(int delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String toString() {
        return "Province{" +
                "provinceId=" + provinceId +
                ", provinceName='" + provinceName + '\'' +
                ", provincePy='" + provincePy + '\'' +
                ", delFlag=" + delFlag +
                '}';
    }
}

  • 编写接口
public interface IProvinceDao {
    /**
     * 添加省份
     *
     * @param provinceName 输入映射:string(包装类、基本数据类型等同)
     * @return
     * @throws Exception
     */
    public int addProvince(String provinceName) throws Exception;

    /**
     * 添加省份
     *
     * @param province 输入映射:自定义的object
     * @return
     * @throws Exception
     */
    public int addProvince1(Province province) throws Exception;

    /**
     * 添加省份
     *
     * @param map 输入映射:Map<String,Object>
     * @return
     * @throws Exception
     */
    public int addProvince2(Map<String, Object> map) throws Exception;

    /**
     * 根据省份名称查询省份信息
     * @param provinceName
     * @return      输出映射:自定义的Oject
     * @throws Exception
     */
    public Province findProvince(String provinceName) throws Exception;
    /**
     * 根据省份名称查询省份信息
     * @param provinceName
     * @return      输出映射:Map<String,Object>
     * @throws Exception
     */
    public Map<String,Object> findProvince1(String provinceName) throws Exception;
    /**
     * 查询省份信息的总记录数
     * @return      输出映射:基本数据类型、包装类、String
     * @throws Exception
     */
    public int count() throws Exception;
}



  • 编写映射器
<?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">
<!--namespace:关联对应的dao接口全限定名(包名+类名)-->
<mapper namespace="com.lpc.mybatis.dao.IProvinceDao">
    <resultMap id="findProvinceResult" type="Province">
        <id property="provinceId" column="province_id"></id>
        <result property="provinceName" column="province_name"></result>
        <result property="provincePy" column="province_py"></result>
        <result property="delFlag" column="del_flag"></result>
    </resultMap>
    <!--添加省份,输入映射:string-->
    <insert id="addProvince" parameterType="string">
        insert into provinces(province_name) value(#{provinceName})
    </insert>
    <!--添加省份,输入映射:自定义的Object-->
    <insert id="addProvince1" parameterType="Province">
        insert into provinces(province_name,province_py) value (#{provinceName},#{provincePy})
    </insert>
    <!--添加省份,输入映射:Map<String,Object>-->
    <insert id="addProvince2" parameterType="map">
        <!--value中放的是map中的key,执行的时候,通过key可以拿到value-->
        insert into provinces(province_name,province_py) value (#{provinceName},#{provincePy})
    </insert>
    <!--通过省份名称查询省份信息;输出映射:自定义的object-->
    <select id="findProvince" parameterType="string" resultMap="findProvinceResult">
        select * from provinces where province_name=#{provinceName}
    </select>
    <!--通过省份名称查询省份信息;输出映射:Map<String,Object>-->
    <select id="findProvince1" parameterType="string" resultType="map">
        select * from provinces where province_name=#{provinceName}
    </select>
    <!--查询省份表的总记录数;输出映射:基本数据类型,包装类,String-->
    <select id="count" resultType="int">
        select count(province_id) from provinces
    </select>
</mapper>
  • mybatis核心配置同上一篇一样,在此就不进行附加了
  • 编写测试类


public class ProvinceTest {
    private SqlSession session;
    private IProvinceDao provinceDao;
    @Before
    public void init() throws IOException {
        //获取文件
        InputStream resource= Resources.getResourceAsStream("SqlMapperConfig.xml");
        //创建SqlSessionFactory
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(resource);
        //创建session,操作statement
        session=factory.openSession(true);
        //创建IUserDao
        provinceDao=session.getMapper(IProvinceDao.class);
    }

    /**
     * 输入映射,针对基本数据类型、包装类、String
     */
    @Test
    public void addProvince(){
        try {
            int row=provinceDao.addProvince("汉东省");
            System.out.println(row>0?"省份信息插入成功":"省份信息插入失败");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 输入映射,针对自定义的Object
     */
    @Test
    public void addProvince1(){
        try {
            int row=provinceDao.addProvince1(new Province("汉西省","hanxi"));
            System.out.println(row>0?"省份信息插入成功":"省份信息插入失败");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 输入映射,Map<String,Object>
     */
    @Test
    public void addProvince2(){
        try {
            Map<String,Object> map=new HashMap<>();
            map.put("provinceName","汉北省");
            map.put("provincePy","hanbei");
            int row=provinceDao.addProvince2(map);
            System.out.println(row>0?"省份信息插入成功":"省份信息插入失败");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 输出映射:自定义的Object
     */
    @Test
    public void findProvince(){
        try {
            Province province=provinceDao.findProvince("北京");
            System.out.println(province);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 输出映射:Map<String,Object>
     */
    @Test
    public void findProvince1(){
        try {
            Map<String,Object> map=provinceDao.findProvince1("北京");
            Set<String> key=map.keySet();
            for (String k:key){
                System.out.print(k);
                System.out.println("\t"+map.get(k));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 输出映射:基本数据类型、包装类、String
     */
    @Test
    public void count(){
        try {
            int count=provinceDao.count();
            System.out.println(count);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @After
    public void destroy(){
        //关闭session,释放资源
        session.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值