zoukankan      html  css  js  c++  java
  • mybatis

    resultMap有比较强大的自动映射,下面是摘自mybatis中文官网的的片段:

    当自动映射查询结果时,MyBatis会获取sql返回的列名并在java类中查找相同名字的属性(忽略大小写)。 这意味着如果Mybatis发现了ID列和id属性,Mybatis会将ID的值赋给id。

    通常数据库列使用大写单词命名,单词间用下划线分隔;而java属性一般遵循驼峰命名法。 为了在这两种命名方式之间启用自动映射,需要将 mapUnderscoreToCamelCase设置为true。

    自动映射甚至在特定的result map下也能工作。在这种情况下,对于每一个result map,所有的ResultSet提供的列, 如果没有被手工映射,则将被自动映射。自动映射处理完毕后手工映射才会被处理。

    下面在hello mybatis基础上,加入resultMap

    1、PersonMapper.xml中加入resultMap,加一个select语句:select * from person

    resultMap没做手动映射,所以按上面说的,mybatis会做自动映射

    <?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="model.PersonMapper">
        <select id="queryPersonById" parameterType="int" resultType="Person"
                useCache="false">
            <![CDATA[
            select * from person where id = #{id}
            ]]>
        </select>
    
        <resultMap id="personListMap" type="Person">
        </resultMap>
        <select id="queryPerson" resultMap="personListMap">
            select * from person
        </select>
    </mapper>

    2、Person.java加个toString方法

        @Override
        public String toString(){
            return id + " : " +
                    name +  " : " +
                    passWord +  " : " +
                    sex +  " : " +
                    email;
        }

    3、PersonTest.java的main方法中加入下面语句

     List<Person> personList = session.selectList("model.PersonMapper.queryPerson");
     for (Person p : personList){
         System.out.println(p.toString());
      }

    4、运行测试方法,即可打印出person表里的所有记录

    1 : danny2 : pwd : m : danny.yao@13.com
    2 : danny2 : pwd : m : danny.yao@13.com
    3 : danny1 : pwd : m : danny.yao@13.com
    4 : danny2 : pwd : m : danny.yao@13.com
    5 : danny3 : pwd : m : danny.yao@13.com
    6 : danny4 : pwd : m : danny.yao@13.com
    7 : danny5 : pwd : m : danny.yao@13.com
    8 : danny6 : pwd : m : danny.yao@13.com
    9 : danny7 : pwd : m : danny.yao@13.com
    10 : danny8 : pwd : m : danny.yao@13.com
    11 : danny9 : pwd : m : danny.yao@13.com
    12 : danny10 : pwd : m : danny.yao@13.com

    ########################################
    没有积累,就没有成长
    ########################################
  • 相关阅读:
    2017《Java技术》预备作业 计科1501 杨欣蕊
    Java技术预备作业02杨欣蕊
    系统无法从光盘启动
    动态数组ArrayList的使用
    dbgrid数据显示和数据源不同
    异步任务判断服务器是否开启
    Java字符串格式化
    思科2960 监听端口设置
    64位win7安装jdk和eclipse
    Delphi临界区的使用
  • 原文地址:https://www.cnblogs.com/dannyyao/p/6239197.html
Copyright © 2011-2022 走看看