我是靠谱客的博主 拉长萝莉,最近开发中收集的这篇文章主要介绍IDEA这样配置,好用到爆炸!!!封装 MyBatis 输出结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

封装 MyBatis 输出结果

resultType

resultType: 执行sql 得到 ResultSet 转换的类型,使用类型的完全限定名或别名。 注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。resultType  和 resu ltMap,不能同时使用。

image.png

A、 简单类型

接口方法:

int countStudent();

mapper 文件:

< select id="countStudent" 

        resultType="int"> select count(*) from 

        student

< /select>
复制代码

测试方法:

@Test

public void testRetunInt(){

        int count = studentDao.countStudent(); 

        System.out.println("学生总人数:"+ count);

}
复制代码

B、对象类型

接口方法:

Student selectById(int id);

mapper 文件:

<select id="selectById" 

        resultType="com.bjpowernode.domain.Student"> select 

        id,name,email,age from student where id=#{studentId}

</select>
复制代码

框架的处理: 使用构造方法创建对象。调用setXXX 给属性赋值。

Student student = new Student();

image.png

注意:Dao 接口方法返回是集合类型,需要指定集合中的类型,不是集合本身。

image.png

C、Map

sql 的查询结果作为 Map 的key 和value。推荐使用Map<Object,Object>。

注意:Map 作为接口返回值,sql 语句的查询结果最多只能有一条记录。大于一条记录是错误。

接口方法:

Map<Object,Object> selectReturnMap(int id);

mapper 文件:

<select id="selectReturnMap" resultType="java.util.HashMap"> 

       select name,email from student where id = #{studentId}

</select>
复制代码

测试方法:

@Test

public void testReturnMap(){

        Map<Object,Object> retMap = studentDao.selectReturnMap(1002);   

        System.out.println("查询结果是 Map:"+retMap);

}
复制代码

resultMap

resultMap 可以自定义sql 的结果和 java 对象属性的映射关系。更灵活的把列值赋值给指定属性。

常用在列名和java 对象属性名不一样的情况。

使用方式:

1.先定义resultMap,指定列名和属性的对应关系。

2.在< select>中把 resultType 替换为resultMap。

接口方法:

List< Student> selectUseResultMap(QueryParam param);

mapper 文件:

image.png

测试方法:

image.png

实体类属性名和列名不同的处理方式

(1) 使用列别名和< resultType>

步骤:

1. 创建新的实体类 PrimaryStudent

image.png

2. 接口方法

List< PrimaryStudent> selectUseFieldAlias(QueryParam param);

3. mapper 文件:

image.png

4. 测试方法

image.png

(2) 使用< resultMap>

步骤:

1. 接口方法

List<PrimaryStudent> selectUseDiffResultMap(QueryParam param);

2. mapper 文件:

image.png

3. 测试方法

image.png

模糊 like

模糊查询的实现有两种方式, 一是java 代码中给查询数据加上“%” ; 二是在mapper 文件sql 语句的条件位置加上“%”

需求:查询姓名有“力”的

例 1: java 代码中提供要查询的 “%力%”

接口方法:

List<Student> selectLikeFirst(String name);

mapper 文件:

<select id="selectLikeFirst" 

        resultType="com.bjpowernode.domain.Student"> select 

        id,name,email,age from student

        where name like #{studentName}

</select>
复制代码

测试方法:

@Test

public void 

        testSelectLikeOne(){ String 

        name="%力%";

        List<Student> stuList = studentDao.selectLikeFirst(name); 

        stuList.forEach( stu -> System.out.println(stu));

}
复制代码

例 2:mapper 文件中使用 like name "%" #{xxx} "%"

接口方法:

List<Student> selectLikeSecond(String name);

mapper 文件:

<select id="selectLikeSecond"

        resultType="com.bjpowernode.domain.Student"> select id,name,email,age 

       from student

       where name like "%" #{studentName} "%"

</select>
复制代码

测试方法:

@Test

public void 

        testSelectLikeSecond(){ String 

        name="力";

        List<Student> stuList = studentDao.selectLikeSecond(name); 

        stuList.forEach( stu -> System.out.println(stu));

} 


作者:凌小可可
链接:https://juejin.cn/post/7021350272463011870
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后

以上就是拉长萝莉为你收集整理的IDEA这样配置,好用到爆炸!!!封装 MyBatis 输出结果的全部内容,希望文章能够帮你解决IDEA这样配置,好用到爆炸!!!封装 MyBatis 输出结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部