MyBatis复习三+MyBatis思维导图

思维导图下滑观看

多参数查询
写法一

User selectByNameAndAge(String name,int age);
<select id="selectByNameAndAge" resultType="user">
<!-- 当前方法有多个参数的时候,我们可以使用param1 param2 ..来代表对应位置的参数 -->
    select *from user where name=#{param1} and age=#{param2}
</select>

写法二

//当方法中有多个参数是,可以在参数前加上param注解,指定改参数在mappler.xml文案金中对应的名字
User selectByNameAndAge2(@Param("name") String name, @Param("age")int age);
<select id="selectByNameAndAge2" resultType="user">
    select *from user where name=#{name} and age=#{age}
</select>

当数据库,名字和参数名不同,用resultMap进行映射,要用了就都写上

<!-- namespace:该mapper映射文件的 唯一标识符    -->
<mapper namespace="com.haina.mybatis.dao.UserDao">

    <resultMap id="BaseResultMap" type="com.haina.mybatis.model.User">
<!--        主键用id标签 -->
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
        <result column="first_name" property="firstName"/>
    </resultMap>
    <!--            表示这个方法要使用缓存 加useCache="true"-->
<!--   resultMap是该方法返回值类型的映射关系 -->
    <select id="selectById" resultMap="BaseResultMap" useCache="true">
        select*from user where id = #{id}
    </select>

多表查询,方法一

public class City {
    private int id;
    private String name;
    private Country country;

<!-- namespace:该mapper映射文件的 唯一标识符    -->
<mapper namespace="com.haina.mybatis.dao.CityDao">

    <resultMap id="resultMap1" type="com.haina.mybatis.model.City">
        <id column="id" property="id"/>
        <!--     column代表的是数据库中的字段名,  property代表的是类中的属性名   -->
        <result column="name" property="name"/>
        <!--    因为country属性不是基本数据类型或者字符串类型, 而是我们自己顶一个的一个引用类型的属性
                该类型里有两个属性,id和name, 我们需要使用association标签来对该类型的属性进行赋值
            -->
        <association property="country" javaType="com.haina.mybatis.model.Country">
            <id column="id" property="id"/>
            <result column="name" property="name"/>
        </association>
    </resultMap>

    <select id="getCityById1" resultMap="resultMap1">
        select c1.id, c1.name, c2.id country_id, c2.name country_name
        from city c1, country c2 where c2.id=c1.cid and c1.id=#{id}
    </select>

</mapper>

方法二
CityMapper.xml

 <resultMap id="resultMap2" type="com.haina.mybatis.model.City">
        <id column="id" property="id"/>
        <!--     column代表的是数据库中的字段名,  property代表的是类中的属性名   -->
        <result column="name" property="name"/>
        <!--    因为country属性不是基本数据类型或者字符串类型, 而是我们自己顶一个的一个引用类型的属性
                该类型里有两个属性,id和name, 我们需要使用association标签来对该类型的属性进行赋值
            -->
        <association property="country" javaType="com.haina.mybatis.model.Country"
           //在CountryMapper中渠道数据,放入property="country"中,传入的是cid
             select="com.haina.mybatis.dao.CountryDao.getCountryById"
            column="cid"/>

    </resultMap>
<!--    查询两次数据库 -->
    <select id="getCityById2">
        select * from city where id={id};
    </select>
    
    CountryMapper.xml
    <?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.haina.mybatis.dao.CountryDao">
    <select id="getCountryById" resultType="com.haina.mybatis.model.Country">
        select * from country where id=#{id}
    </select>
</mapper>
    

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值