ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

mybatis中的sql映射文件(1)—resultType

mybatis中的sql映射文件(1)—resultType 目录0.前言1.resultType解析1.1.基本类型举例:1.2JavaBean类型1.3List类型1.4Map类型0.前言mybaits中sql映射文件是一个xml文件里面记录的和数据库交互的各种信息相当于sql语句在写这些语句的时候遇到很多不同的参数比如resultType,这篇文章简单介绍下resultType。resultType是返回的类型。实际上是resultType将查询到结果映射封装成pojo类型中前提是该pojo类的属性名和查询到的数据库表的字段名一致。这种映射封装mybatis帮我们自动做好了不需要我们自己考虑。所以看起来我们是我们查询一些数据然后返回类型是pojo。实际上内部映射封装不需要我们实现。本文代码下载1百度网盘通过网盘分享的文件demo-mybatis-test1.zip链接: https://pan.baidu.com/s/1RadOrjgHVK6qwEFekljNfQ?pwdq4g9 提取码: q4g92夸克网盘我用夸克网盘给你分享了「demo-mybatis-test1.zip」点击链接或复制整段内容打开「夸克APP」即可获取。/c8b73b70m4链接https://pan.quark.cn/s/8946b55409c0?pwdXvKx提取码XvKx1.resultType解析resultType是你sql语句的返回值类型。有以下不同的用法基本类型 JavaBean类型 List类型 Map类型1.1.基本类型举例:场景比如返回数据库中某一个的字段值?xmlversion1.0encodingUTF-8?!DOCTYPE mapper PUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cat.dao.StudentsMapper!-- 指定 resultType 返回值类型时 String 类型的--!-- string 在这里是一个别名代表的是 java.lang.String--selectidlistAllStudentsresultTypeStringselect* from students whereid#{id};/select/mapper1.2JavaBean类型场景查询数据库中一条信息把这条信息封装成某个JavaBean类型。比如我的pojo中定义了一个Studentspackage com.cat.pojo;importlombok.Data;Data public class Students{private intid;private String stu_name;private String stu_sex;private int class_id;private int age;}然后在xml文件中的resultType可以这样写?xmlversion1.0encodingUTF-8?!DOCTYPE mapper PUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cat.dao.StudentsMapperselectidlistAllStudentsresultTypecom.cat.pojo.Studentsselect* from students;/select/mapper1.3List类型场景有时候我们要查询的数据不止一条比如模糊查询全表查询等这时候返回的数据可能不止是一条数据对于多数据的处理可以存放在List集合中。Students接口package com.cat.pojo;importlombok.Data;Data public class Students{private intid;private String stu_name;private String stu_sex;private int class_id;private int age;}StudentsMapper接口package com.cat.dao;importcom.cat.pojo.Students;importjava.util.List;public interface StudentsMapper{//所有学生 ListStudentslistAllStudents();}StudentsMapper.xml?xmlversion1.0encodingUTF-8?!DOCTYPE mapper PUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cat.dao.StudentsMapperselectidlistAllStudentsresultTypecom.cat.pojo.Studentsselect* from students;/select/mapper1.4Map类型场景如果查询的结果是一条我们可以把查询的数据以{表字段名 对应的值}方式存入到Map中。StudentsMapperpackage com.cat.dao;importcom.cat.pojo.Students;importjava.util.List;importjava.util.Map;public interface StudentsMapper{//所有学生 ListStudentslistAllStudents();//单独测试map public MapString, ObjectgetStudent(intid);}StudentsMapper.xml?xmlversion1.0encodingUTF-8?!DOCTYPE mapper PUBLIC-//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespacecom.cat.dao.StudentsMapperselectidlistAllStudentsresultTypecom.cat.pojo.Studentsselect* from students;/select!--测试返回值类型为map的 --selectidgetStudentresultTypemapselect*from students whereid#{id}/select/mappertest文件package com.cat.test;importcom.cat.dao.StudentsMapper;importcom.cat.pojo.Students;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;importjava.util.Map;public class MyBatisTest{//测试返回值类型为Map的情况 Test public void getStudent()throws IOException{//获得核心配置文件 InputStreaminResources.getResourceAsStream(MyBatisConfig.xml);//获得session工厂对象 SqlSessionFactoryBuilder buildernew SqlSessionFactoryBuilder();SqlSessionFactoryfactorybuilder.build(in);SqlSession sessionfactory.openSession();//获得会话对象 StudentsMapper studentsMappersession.getMapper(StudentsMapper.class);MapString,ObjectmapstudentsMapper.getStudent(1000);System.out.println(map);session.close();//关闭}}结果
返回列表