08-输出类型

输出类型

目录


输出简单类型

CustomerMapper.java:返回值为简单类型。

public interface CustomerMapper {
    /*查询总数*/
    public Integer getAccountCustomer();
}

CustomerMapper.xml :返回值 resultType 为简单类型,这个我们之前经常使用,已经很熟悉了。

<?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">
<mapper namespace="com.itlike.mapper.CustomerMapper">

    <!--查询总记录数-->
    <select id="getAccountCustomer" resultType="integer">
        SELECT count(*) FROM customer;
    </select>
    
</mapper>

测试类:

public class MyTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.openSession();
        CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);
       
        Integer accountCustomer = mapper.getAccountCustomer();
        System.out.println(accountCustomer);

        sqlSession.close();
    }
}

运行结果:输出了数据库中的数据数量。
12

输出 Map 类型

key:列名 value:列名对应的值

CustomerMapper.java:返回值为 Map 类型

public interface CustomerMapper {
    /*根据Id查询用户*/
    public Map<String,Object> getCustomerWithId(Integer id);
}

CustomerMapper.xml:返回值为 Map

<?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">
<mapper namespace="com.itlike.mapper.CustomerMapper">

    <!--根据id查询客户-->
    <select id="getCustomerWithId" resultType="java.util.Map">
        SELECT * FROM customer WHERE cust_id = #{id}
    </select>

</mapper>

测试类:

public class MyTest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.openSession();
        CustomerMapper mapper = sqlSession.getMapper(CustomerMapper.class);

        Map<String, Object> customer = mapper.getCustomerWithId(1);
        System.out.println(customer);

        sqlSession.close();
    }
}

运行结果:key 是列名 ,value 是列名对应的值。

{cust_profession=射手, cust_name=鲁班, cust_id=1, cust_phone=13499887733, email=12341241@qq.com}

key:自己指定的列 value:自定义对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

resultMap

之有在写输出时使用的都是 resultType,但是 resultType 要求字段名称和数据库当中的名称一致才能有值,否则为 null;如果 sql 查询字段名和 pojo 的属性名不一致,可以通过 resultMap 将字段名和属性名作一个对应关系。

当 domain 中的字段与数据库当中名字不一致时:
在这里插入图片描述
直接查询出来的结果会是 null,因为 domain 的字段与数据库不一样,只有一个名称相同的 email 可以查询到。
在这里插入图片描述

需要用 resultMap 自己做一个映射关系,将数据库中的名称与 domain 对应。
在这里插入图片描述

然后查询出来的结果便不是 null。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军刀0923

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值