MyBatis <if>标签的使用

示例【根据学生姓名和班级信息查询】

创建t_student表

创建Student

package com.po;
public class Student {
	private Integer sid;		//学号
	private String sname;		//姓名
	private String sex;			//性别
	private String classes;		//班级
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getClasses() {
		return classes;
	}
	public void setClasses(String classes) {
		this.classes = classes;
	}
	@Override
	public String toString() {
		return "Student [sid=" + sid + ", sname=" + sname + ", sex=" + sex + ", classes=" + classes + "]";
	}	
}

创建StudentMapper.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.mapper.StudentMapper">
	<!-- 根据姓名和班级查询 -->
	<select id="getStudentByNameAndClasses" resultType="com.po.Student">
		select * from t_student where 1=1
		<if test="sname!=null">
			and sname like concat('%',#{sname},'%')
		</if>
		<if test="classes!=null">
			and classes=#{classes}
		</if>
	</select>
</mapper>

配置mybatis-config.xml并加StudentMapper.xml

<mappers>
		<mapper resource="com/mapper/StudentMapper.xml"/>		
</mappers>

创建StudentDao

package com.dao;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;
import com.factory.SessionFactory;
import com.po.Student;
public class StudentDao {
	private SqlSession session=SessionFactory.getSqlSession();
	private List<Student> students=new ArrayList<Student>();
	@Test
	public void getStudentByNameAndClasses(){
		Student stu=new Student();
		stu.setSname("张三");
		stu.setClasses("大一");
		students=session.selectList("com.mapper.StudentMapper.getStudentByNameAndClasses", stu);
		for (Student student : students) {
			System.out.println(student);
		}
	}
}

传递sname、classes两个参数,然后执行getStudentByNameAndClasses()方法

只传递classses参数,然后执行getStudentByNameAndClasses()方法

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云淡风轻58

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

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

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

打赏作者

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

抵扣说明:

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

余额充值