遂溪网站建设公司,电商怎么做营销推广w,网站建设评比办法,互联网运营是什么工作文章目录 零、本节学习目标一、查询需求二、打开MyBatisDemo项目三、对学生表实现条件查询#xff08;一#xff09;创建学生映射器配置文件#xff08;二#xff09;配置学生映射器文件#xff08;三#xff09;创建学生映射器接口#xff08;四#xff09;测试学生映… 文章目录 零、本节学习目标一、查询需求二、打开MyBatisDemo项目三、对学生表实现条件查询一创建学生映射器配置文件二配置学生映射器文件三创建学生映射器接口四测试学生映射器接口任务1、查询女生记录任务2、查询19岁的女生任务3、查询姓吴的19岁女生任务4、查找姓张的19岁女生 零、本节学习目标
理解条件查询的含义掌握利用MyBatis实现条件查询
京东网购就涉及条件查询
一、查询需求
对学生表进行条件查询涉及姓名、性别和年龄三个字段。 比如查询姓“吴”性别为“女”同时年龄为19的学生记录。 注意通配符%与_的区别
二、打开MyBatisDemo项目
打开MyBatisDemo项目
三、对学生表实现条件查询
一创建学生映射器配置文件
在resources/mapper目录里创建学生映射器配置文件 - StudentMapper.xml
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacenet.huawei.mybatis.mapper.StudentMapper!--按编号查询班级--select idgetClazz resultTypeClazzSELECT c_id id, c_name name FROM t_class WHERE c_id #{id}/select!--定义学生结果映射--resultMap idstudentMap typeStudentresult columns_id propertyid/result columns_name propertyname/result columns_gender propertygender/result columns_age propertyage/!--通过子查询getClazz关联到班级实体--association columnclass_id propertyclazz javaTypeClazz selectgetClazz//resultMap!--按条件查询学生记录涉及姓名、性别与年龄的联合查询--select idfindByCondition parameterTypejava.util.Map resultMapstudentMapSELECT * FROM t_studenttrim prefixWHERE prefixOverridesAND|OR !--删除条件中多余的AND或OR--!--关于姓名的条件模糊查询--if testname ! nulls_name LIKE CONCAT(#{name}, %)/if!--关于性别的条件--if testgender ! nullAND s_gender #{gender} !--注意AND不能少--/if!--关于年龄的条件--if testage ! nullAND s_age #{age} !--注意AND不能少--/if/trim/select
/mapper二配置学生映射器文件
在MyBatis配置文件的mappers元素里添加子元素mapper resourcemapper/StudentMapper.xml/
三创建学生映射器接口
在net.huawei.mybatis.mapper包里创建学生映射器接口 - StudentMapper
package net.huawei.mybatis.mapper;import net.huawei.mybatis.bean.Student;import java.util.List;
import java.util.Map;/*** 功能学生映射器接口* 作者华卫* 日期2023年04月18日*/
public interface StudentMapper {ListStudent findByCondition(MapString, Object condition); // 按条件查询学生记录
}对应关系图
四测试学生映射器接口
在test/java的net.huawei.mybatis.mapper包里创建TestStudentMapper类
package net.huawei.mybatis.mapper;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 java.io.IOException;
import java.io.Reader;/*** 功能测试学生映射器接口* 作者华卫* 日期2023年04月18日*/
public class TestStudentMapper {private SqlSession sqlSession; // SQL会话private StudentMapper studentMapper; // 学生映射器Beforepublic void init() {try {// 读取MyBatis配置文件Reader reader Resources.getResourceAsReader(mybatis-config.xml);// 基于MyBatis配置文件构建SQL会话工厂SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话sqlSession factory.openSession();// 利用SQL会话获取学生映射器对象studentMapper sqlSession.getMapper(StudentMapper.class);// 提示用户SQL会话创建成功System.out.println(SQL会话创建成功~);} catch (IOException e) {e.printStackTrace();}}Afterpublic void destroy() {// 关闭SQL会话sqlSession.close();// 提示用户SQL会话关闭System.out.println(SQL会话已经关闭~);}
}任务1、查询女生记录
添加测试方法testFindByCondition()
Test // 测试按条件查询学生记录
public void testFindByCondition() { // 创建条件对象 MapString, Object condition new HashMap(); // 设置性别条件女 condition.put(gender, 女); // 按条件查询学生记录 ListStudent students studentMapper.findByCondition(condition);// 判断是否查询到满足条件的记录 if (students.size() 0) { // 使用列表的遍历算子输出全部记录 students.forEach(student - System.out.println(student)); } else { // 提示用户没有找到满足条件的记录 System.out.println(遗憾没找到满足条件的记录~); }
} 运行测试方法testFindByCondition()查看结果
任务2、查询19岁的女生 修改测试方法里的查询条件 运行测试方法testFindByCondition()查看结果
任务3、查询姓吴的19岁女生 修改测试方法里的查询条件 运行测试方法testFindByCondition()查看结果
任务4、查找姓张的19岁女生 修改测试方法里的查询条件 运行测试方法testFindByCondition()查看结果