码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis_resultMap

时间:2018-05-02 15:51:38      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:实体类   throws   Nid   数据类型   变量   场景   ati   print   情况下   

类中属性的名称要和数据库的属性名称一致,不然找不到,但是开发中数据库属性命名用下划线,类中属性用驼峰,所以有时名称是不一样的。所有有了resultMap

resultMap使用场景,有映射,java实体类属性名与数据库字段名不同的情况下。

<?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:映射文件的命名空间,内容规范就是映射文件的包名.此xml文件名 -->
<mapper namespace="xxx.x.mapper.PersonTestMapper">


    <!--
        resultMap的type是实体类(实体数据类型),id随便起是resultMap唯一标识,下面原来的resultType去掉改成resultMap,值就是这个id
        除了表里的id列用id表示外,其余都用result表示,所有属性都要写
        column表示表里的字段名,property表示实体类中属性的名
    -->
    <resultMap type="xxx.x.Person" id="BaseResultMap"> 
        <id column = "person_id" property = "personId" />
        <result column = "name" property = "name" />
        <result column = "gender" property = "gender" />
        <result column = "person_addr" property = "personAddr" />
        <result column = "birthday" property = "birthday" />
        
    </resultMap>
    <!-- 
        parameterType是传递参数的类型,下面为整型写法
        sql语句最后一个参数id是变量
        resultType是查询后的结果,内容是需要输出到的地址,那个Person类里需要定义好那些需要接受数据的属性
        #{}使用预编译的方式生成SQL,防止sql的注入
     -->
    <select id="selectPersonByID" parameterType="java.lang.Integer" resultMap="BaseResultMap">
        select * from person_test where id = #{id}
    </select>
    
</mapper>

但resultType也不是没用,下面情况就需要用到,没有映射情况下:

    <select id="selectPersonCount" resultType="java.lang.Integer" >
        select count(*) from person
    </select>

调用这个的java语句就是:

SqlSessionFactory sessionFactory;
    public void setUp() throws Exception {
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        sessionFactory = new SqlSessionFactoryBuilder().build(in);
    }
    public void test() {
        //创建SqlSession
        SqlSession session = sessionFactory.openSession();
      
        Integer count = session.selectOne("xxx.x.mapper.PersonTestMapper.selectPersonCount"); //查找到要执行的sql语句,用命名空间.id  
        System.out.println(count);
        session.close();
    }

 

Mybatis_resultMap

标签:实体类   throws   Nid   数据类型   变量   场景   ati   print   情况下   

原文地址:https://www.cnblogs.com/lonske/p/8979823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!