Mybatis - 输入映射 & 输出映射(04)

本文介绍如何使用MyBatis进行包含两个输入参数的SQL查询,并展示了如何处理数据库字段与POJO类属性不一致的情况,包括使用as关键字进行别名映射及通过resultMap进行手动映射的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多个输入参数

<select id="twoParams" resultType="User">
    select * from user where birthday = #{date} and address = #{address}
</select>
public List<User> twoParams(@Param("date")Date date, @Param("address")String address);
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.pojo.User;

public class Test {
    public static void main(String[] args) throws Exception {
        //1、加载核心配置文件
        String coreXml = "sqlMapConfig.xml";
        InputStream in = Resources.getResourceAsStream(coreXml);
        //2、创建工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //3、获得sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //4、获取sqlSession对象
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        List<User> users = userDao.twoParams(sdf.parse("2018-09-17"), "aaaaaa");
        System.out.println(users);
    }
}

输出映射

当数据库的字段和pojo类的属性名称一致时,可以使用自动映射,即:resultType="",不一致时有两种做法:

  • sql语句:我把数据库字段由id改为user_idsql语句改成:select user_id as id, username, birthday, sex, address from user where birthday = #{date} and address = #{address},就可以了。使用as关键字。

  • resuleMap=""resultMap可以手动映射。

    <resultMap type="User" id="test">
        <!-- 如果是主键,使用id标签,如果是属性,使用result -->
        <id column="user_id" property="id"/>
    </resultMap>
    <select id="twoParams" resultMap="test">
        select user_id, username, birthday, sex, address from user where birthday = #{date} and address = #{address}
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值