mybatis基于mapper代理的开发

来源:互联网 发布:赛尔网络大赛 编辑:程序博客网 时间:2024/04/29 22:58

基于mapper代理的开发方式需要遵循以下几点规范


1.映射文件的namespace要与mapper接口的权限定名一致

2.映射文件中的sqlid要与mapper接口中的方法名一致

3.映射文件的parameterType要与mapper接口中对应方法的参数类型一致(mapper接口中的参数只允许有一个)

4.映射文件的returnType要与mapper接口中对应方法的返回类型一致


按照上述规范已经可以正常使用mapper代理的方式进行开发了,不过还有一些规范也需要尽量遵循


1.Mapper接口和对应的配置文件名字一致(不包括扩展名,如UserMapper.xml---UserMapper.java),命名规范是对应实体类名+Mapper

2.Mapper接口和对应的配置文件在同一个包(这对于后续与spring整合很重要)


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="cn.xt.mapper.UserMapper" ><resultMap id="BaseResultMap" type="cn.xt.po.User" >   <id column="id" property="id" jdbcType="INTEGER" />   <result column="name" property="name" jdbcType="VARCHAR" />   <result column="birthday" property="birthday" jdbcType="DATE" /></resultMap><select id="selectById" resultMap="BaseResultMap" parameterType="int" resultType="cn.xt.po.User">select * from User where id=#{id}</select></mapper>


UserMapper.java


package cn.xt.mapper;import cn.xt.po.User;public interface UserMapper {public User selectById(int id);}


代码测试


InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);SqlSession session = factory.openSession();UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.selectById(1);System.out.println(user.getBirthday());


0 0
原创粉丝点击