96SEO 2026-02-19 19:09 12
查询集合二、MyBatis获取参数值的两种方式重点1、单个字面量类型的参数2、多个字面量类型的参数3、map集合类型的参数4、实体类类型的参数5、使用Param标识参数6、结论三、MyBatis的各种查询功能1、查询一个实体类对象2、查询一个list集合3、查询单个数据4、查询一条数据为map集合5、查询多条数据为map集合6、结论前言

本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识有兴趣的小伙伴可以关注博主也许一个人独行可以走的很快但是一群人结伴而行才能走的更远
values(null,张三,123,23,女)/insert2、修改
getUserId();UserMapper.xml!--User
getUserById();--!--查询功能的标签必须设置resultType或resultMapresultType设置默认的映射关系resultMap设置自定义的映射关系--select
resultTypecom.ir.mybaits.pojo.Userselect
查询的标签select必须设置属性resultType或resultMap用于设置实体类和数据库表的映射关系
resultMap自定义映射用于一对多或多对一或字段名和属性名不一致的情况
⭕当查询的数据为多条时不能使用实体类作为返回值只能使用集合否则会抛出异常TooManyResultsException但是若查询的数据只有一条可以使用实体类或集合作为返回值
⭕${}的本质就是字符串拼接使用字符串拼接的方式拼接sql若为字符串类型或日期类型的字段进行赋值时需要手动加单引号
#{}的本质就是占位符赋值但是#{}使用占位符赋值的方式拼接sql此时为字符串类型或日期类型的字段进行赋值时可以自动添加单引号
若mapper接口中的方法参数为单个的字面量类型此时可以使用${}和#{}以任意的名称获取参数的值但是需要注意${}的单引号问题
com.ir.mybatis.pojo.User**/User
resultTypeuser!--此时只注重传递过来的值{username}中的usernsme可以替换为任意字母结果都不会改变--!--select
#{username};/selectUserMapperTest
SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);System.out.println(userMapper.getUserByUsername(张三));}2、多个字面量类型的参数
mapper接口方法的参数为多个时此时MyBatis会将这些参数放在一个map集合中以两种方式进行存储
以arg0,arg1…为键以参数为值以param1,param2…为键以参数为值
因此只需要通过${}和#{}访问map集合的键就可以获取相对应的
com.ir.mybatis.pojo.User**/User
password#{arg1};/selectUserMapperTest
SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);User
userMapper.checkLoginByParameter(张三,123);System.out.println(user);}3、map集合类型的参数
若mapper接口中的方法需要的参数为多个时此时可以手动创建map集合将这些数据放在map中只需要通过${}和#{}访问map集合的键就可以获取相对应的值但是需要注意${}的单引号问题
password#{password};/selectUserMapperTest
SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);MapString,Object
HashMap();map.put(username,张三);map.put(password,123);User
userMapper.checkLoginByMap(map);System.out.println(user);}4、实体类类型的参数
若mapper接口中的方法参数为实体类对象时此时可以使用${}和#{}通过访问实体类对象中的属性名获取属性值但是需要注意${}的单引号问题
values(null,#{username},#{password},#{age},#{sex},#{email})/selectUserMapperTest
SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);Integer
User(null,喜羊羊,123456,18,男,123123qq.com));System.out.println(result);}5、使用Param标识参数
可以通过Param注解标识mapper接口中的方法参数此时会将这些参数放在map集合中以如下两种方式来取值访问
以Param注解的value属性值为键以参数为值以param1,param2…为键以参数为值
只需要通过${}和#{}访问map集合的键就可以获取相对应的值但是需要注意${}的单引号问题
com.ir.mybatis.pojo.User**/User
checkLoginByParam(Param(username)
checkLoginByParam(Param(username)
#{password}/selectUserMapperTest
testCheckLoginByParam(){SqlSession
SqlSessionUtils.getSqlSession();UserMapper
sqlSession.getMapper(UserMapper.class);User
mapper.checkLoginByParam(admin,
123456);System.out.println(user);}
com.ir.mybatis.pojo.User**/User
SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);User
selectMapper.getUserById(3);System.out.println(user);}2、查询一个list集合
java.util.Listcom.ir.mybatis.pojo.User**/ListUser
SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);ListUser
{System.out.println(user);}}3、查询单个数据
3.5.10)char_longlong_shortshort_intint_integerint_doubledouble_floatfloat_booleanbooleanstringStringbyteBytechar
3.5.10)CharacterlongLongshortShortintIntegerintegerIntegerdoubleDoublefloatFloatbooleanBooleandateDatedecimalBigDecimalbigdecimalBigDecimalbigintegerBigIntegerobjectObjectdate[]Date[]decimal[]BigDecimal[]bigdecimal[]BigDecimal[]biginteger[]BigInteger[]object[]Object[]mapMaphashmapHashMaplistListarraylistArrayListcollectionCollectioniteratorIteratorSelectMapper
SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);int
selectMapper.getCount();System.out.println(result);}4、查询一条数据为map集合
description:根据id查询用户信息为一个map集合*
java.util.Mapjava.lang.String,java.lang.Object**/MapString,Object
getUserByIdToMap(ParamidInteger
description:根据id查询用户信息为一个map集合*
getUserByIdToMap(){SelectMapper
SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);System.out.println(selectMapper.getUserByIdToMap(5));//{password123456,
若有多条数据就会产生多个map集合此时可以将这些map放在一个list集合中获取*
java.util.Listjava.util.Mapjava.lang.String,java.lang.Object**/ListMapString,
testGetAllUserToMap(){SqlSession
SqlSessionUtils.getSqlSession();SelectMapper
sqlSession.getMapper(SelectMapper.class);System.out.println(mapper.getAllUserToMap());/***
若有多条数据就会产生个map集合并且最终要以一个map的方式返回数据此时需要通过MapKey注解设置map集合的键值是每条数据所对应的map集合*
java.util.Listjava.util.Mapjava.lang.String,java.lang.Object**/MapKey(id)MapString,
testGetAllUserToMap(){SqlSession
SqlSessionUtils.getSqlSession();SelectMapper
sqlSession.getMapper(SelectMapper.class);System.out.println(mapper.getAllUserToMap());/***
●可以在mapper接口的方法上添加MapKey注解此时就可以将每条数据转换的map集合作为值以某个字段的值作为键放在同一个map集合中
注意一定不能通过实体类对象接收此时会抛异常TooManyResultsException
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback