Mybatis的参数深入(1)

  • 测试包装类作为参数

parameterType 配置参数

============================================================================

使用说明


**使用SQL 语句传参,使用标签的 parameterType 属性来设定。该属性的取值可以

是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类,本章节将介绍如何使用实体类的包装类作为参数传递。**

注意事项


**基 本 类 型 和 String 我 们 可 以 直 接 写 类 型 名 称 , 也 可 以 使 用 包 名 . 类 名 的 方 式 ,例 如 :java.lang.String。实体类类型,目前我们只能使用全限定类名。

究其原因,是 mybaits 在加载时已经把常用的数据类型注册了别名,从而我们在使用时可以不写包名,而我们的是实体类并没有注册别名,所以必须写全限定类名。在今天课程的最后一个章节中将讲解如何注册实体类的别名。**

传递 pojo 包装对象(使用QueryVo作为查询条件)

=======================================================================================

**开发中通过 pojo 传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。

Pojo 类中包含 pojo。

需求:根据用户名查询用户信息,查询条件放到 QueryVo 的 user 属性中。**

编写 QueryVo


QueryVo

package com.keafmd.domain;

/**

  • Keafmd

  • @ClassName: QueryVo

  • @Description:

  • @author: 牛哄哄的柯南

  • @date: 2021-02-08 21:08

*/

public class QueryVo {

private User user;

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

}

编写持久层接口


IUserDao:

package com.keafmd.dao;

import com.keafmd.domain.QueryVo;

import com.keafmd.domain.User;

import org.apache.ibatis.annotations.Select;

import java.util.List;

/**

  • Keafmd

  • @ClassName: IUserDao

  • @Description: 用户的持久层接口

  • @author: 牛哄哄的柯南

  • @date: 2021-02-06 19:29

*/

public interface IUserDao {

/**

  • 根据QueryVo中的条件查询用户

  • @param vo

  • @return

*/

List findUserByVo(QueryVo vo);

}

持久层接口的映射文件


IUserDao.xml:

<?xml version="1.0" encoding="UTF-8"?>

select * from user where username like #{user.username}

测试包装类作为参数


MybatisTest:

package com.keafmd.test;

import com.keafmd.dao.IUserDao;

import com.keafmd.domain.QueryVo;

import com.keafmd.domain.User;

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 org.junit.After;

import org.junit.Before;

import org.junit.Test;

import java.io.IOException;

import java.io.InputStream;

import java.util.Date;

import java.util.List;

/**

  • Keafmd

  • @ClassName: MybatisTest

  • @Description: 测试类,测试crud操作

  • @author: 牛哄哄的柯南

  • @date: 2021-02-08 15:24

*/

public class MybatisTest {

private InputStream in;

private SqlSession sqlsession;

private IUserDao userDao;

自学几个月前端,为什么感觉什么都没学到??


这种现象在很多的初学者和自学前端的同学中是比较的常见的。

因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。

最重要的是,在学习的过程中,不知道每个部分该学哪些知识点,学到什么程度才算好,学了能做什么。

很多自学的朋友往往都是自己去找资料学习的,资料上有的或许就学到了,资料上没有的或许就没有学到。

这就会给人一个错误的信息就是,我把资料上的学完了,估计也-就差不多的了。

但是真的是这样的吗?非也,因为很多人找的资料就是很基础的。学完了也就是掌握一点基础的东西。分享给你一份前端分析路线,你可以参考。

还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。

所以学习编程一定要注重实践操作,练习敲代码的时间一定要多余看视频的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值