千家信息网

MyBatis中resultType与resultMap的返回类型有哪些

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,小编给大家分享一下MyBatis中resultType与resultMap的返回类型有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起
千家信息网最后更新 2025年02月03日MyBatis中resultType与resultMap的返回类型有哪些

小编给大家分享一下MyBatis中resultType与resultMap的返回类型有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、返回集合

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 对应不上时可开启驼峰命名或查询时使用别名http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

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;

以上是"MyBatis中resultType与resultMap的返回类型有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0