Mybatis学习 - select查询结果用resultMap指定返回值

使用resultType的时候,数据库查询结果的字段名字必须和java代码的字段名一致,不一致的时候解决办法如下:
1、可以在sql查询语句中使用别名
2、可以在setting中设置开启mapUnderscoreToCamelCase,开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
3、使用resultMap(在mapper文件中resultType和resultMap只能二选一)

标题

1、添加接口方法

    public Teacher getTeacherByIDUseResultMap(Integer id);

2、编写mapper文件

    <resultMap id="teacher" type="bean.Teacher">
        <!--用id定义主键-->
        <id column="id" property="id"/>
        <!-- result定义普通封装规则,按照习惯会定义所有的列-->
        <result column="name" property="name"/>
        <result column="gender" property="gender"/>

    </resultMap>
    <!-- resultMap写对应map的id值-->
    <select id="getTeacherByIDUseResultMap" resultMap="teacher">
        select * from teacher where id=#{id}
    </select>

3、编写测试代码

    @Test
    public void testSearch7() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例
        try (SqlSession session = sqlSessionFactory.openSession()) {
            //获取接口的实现
            TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
            Teacher teacher = teacherMapper.getTeacherByIDUseResultMap(1);
            System.out.println(teacher);
        }

    }

运行结果
在这里插入图片描述

发布了107 篇原创文章 · 获赞 10 · 访问量 9680

猜你喜欢

转载自blog.csdn.net/liying15/article/details/102330061
今日推荐