博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis-resultType 与 resultMap 中的几种返回类型
阅读量:5119 次
发布时间:2019-06-13

本文共 3458 字,大约阅读时间需要 11 分钟。

一、返回集合

1.返回JavaBean集合

public List
selectMyUserByNameLike(String name);

测试方法

public static void main(String[] args) {    SqlSession session = null;    try {        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        session = sqlSessionFactory.openSession();        MyUserMapper mapper = session.getMapper(MyUserMapper.class);        List
myUsers = mapper.selectMyUserByNameLike("%a%"); System.out.println(myUsers); } catch (IOException e) { e.printStackTrace(); } finally { if (session != null) { session.close(); } }}

2.返回 Map 集合

 

二、返回 Map

1.一条记录

public Map
selectMyUserById(Integer id);

2.多条记录,需要指定 Map 的 Key 和 Value 的类型

// 指定 Map 的 Key 从记录中的 id 列获取@MapKey("id")public Map
selectMyUserByGtId(Integer id);

 

三、返回 resultMap 自定义结果集封装

关于自动映射封装的配置

默认数据库字段与 JavaBean 对应不上时可开启驼峰命名或查询时使用别名

 

1.自定义 JavaBean 的封装

确认是否成功可以关掉 MyBatis 的自动映射

public MyUser selectMyUserById(Integer id);

 

2.关联查询的封装,一对一,JavaBean 属性包含 JavaBean

public MyUser selectMyUserById(Integer id);

直接调用属性赋值

使用 association

使用 association 二次查询,即有两条 SQL

 

开启懒加载:在没有使用 Dept 的属性时,则只会加载 MyUser 的属性。即只会发送一条 SQL 语句,要使用 Dept 属性时才会发送第二条 SQL。不会一次性发送两条 SQL

 

3.关联查询的封装,一对多,JavaBean 属性包含 JavaBean 的集合

使用 association

public Dept getDeptById(Integer id);

关闭懒加载,使用二次查询

public Dept getDeptByIdStep(Integer did);
public List
selectMyUserByDid(Integer dId);

 

4.鉴别器 discriminator

 

 

 

上面测试中使用的实体类与数据

public class Dept {    private Integer id;    private String name;    private List
myUsers;
public class MyUser {    private Integer id;    private String name;    private Integer age;    private Dept dept;


转载于:https://www.cnblogs.com/jhxxb/p/10484484.html

你可能感兴趣的文章
ORACLE会话连接进程三者总结
查看>>
python学习笔记第九节(迭代器,生成器,三元表达式)
查看>>
数据结构之队列(二)——链队列
查看>>
git命令
查看>>
第二周第三天课程
查看>>
Mac 下安装Ruby环境
查看>>
寻找被黑金毁掉的黑客精神
查看>>
「POJ3237」Tree(树链剖分)
查看>>
Java虚拟机
查看>>
c++ explicit
查看>>
nodejs 环境搭建
查看>>
SVN服务器的安装和使用
查看>>
通达OA应用中心使用手册(脚本编写指南)
查看>>
关于vector push_back()与其他方式读取数据的效率对比
查看>>
jcom2在win7 X86上操作Excel
查看>>
列表及表格
查看>>
1.链表和数组的区别在哪里?
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用
查看>>
bootstrapTble 的一些小结
查看>>
Eclipse 安装反编译插件jadclipse
查看>>