Mybatis获取参数值的各种情况

public interface SelectMapper {//根据ID查询用户信息User getUserById(@Param("id") Integer id);//查询所有用户信息List<User> getAllUser();//查询用户信息的总记录数Integer getCount();//查询用户信息使用mapMap<String, Object> getUserByIdToMap(@Param("id") Integer id);//查询指定年龄的人的信息String getNameByAge(@Param("age") Integer age);//查询所有用户信息 使用ListMapList<Map<String,Object>> getAllUserToListMap();//查询所有用户信息使用Map@MapKey("id")Map<String,Object> getAllUserToMap();
}
  /** @author h* @desc* Mybatis中获取参数值的两种方式:${},#{}* ${}本质是字符串拼接* #{}本质是占位符* Mybatis获取参数值的各种情况:* 1、mapper接口方法的参数* 2、mapper接口方法的参数有多个*  此时Mybatis会将参数放入一个Map集合中,以两种方式进行存储* 3、若mapper接口方法的参数有多个时,可以手动将这些参数放在map中存储* 4、mapper接口方法的参数是实体类类型的参数*  通过属性来访问即可* 5、命名参数(注解)*/@Testpublic void getAllUser(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);List<User> users = mapper.getAllUser();for (Object o: users) {System.out.println(o);}}@Testpublic void getUserByUsername(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);User user = mapper.getUserByUsername("张三");System.out.println(user);}@Testpublic void checkLogin(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);User user = mapper.checkLogin("张三","123456");System.out.println(user);}@Testpublic void checkLoginByMap(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);Map<String,Object> map = new HashMap<>();map.put("username","张三");map.put("password","123456");User user = mapper.checkLoginByMap(map);System.out.println(user);}@Testpublic void insertUser(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);int result = mapper.insertUser(new User(null,"李四","abc123",23,"男","123@qq.com"));System.out.println(result);}}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis.mapper.ParameterMapper"><!--List<User> getAllUser();--><select id="getAllUser" resultType="User">select * from t_user</select><!--User getUserByUsername(String name)--><select id="getUserByUsername" resultType="User"><!--#{}中的值可以为任意,只是想跟参数名保持一致--><!-- select * from t_user where username = #{username}-->select * from t_user where username = ${username}</select><!--User checkLogin(String username, String password);--><select id="checkLogin" resultType="User">select * from t_user where username = #{arg0} and password = #{arg1}</select><!--User checkLoginByMap(Map<String,Object> map);--><select id="checkLoginByMap" resultType="User">select * from t_user where username = #{username} and password = #{password}</select><!--int insertUser(User user);--><insert id="insertUser">insert into t_user values(null, #{username},#{password},#{age},#{sex},#{email})</insert>
</mapper>

注意最后一个案例 增加user的操作中

因为mybatis中底层是用Map来表示的,当操作的对象是一个实体类时,只需要用其属性值作为键即可得到对应的值。

常用的为@Param()

#{id} @Param中的键所对应的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis中的配置文件xml

在配置的过程中&#xff1a;我们的mapper接口要与映射的XML文件处在同一位置下&#xff08;层级相同&#xff09; 比如&#xff1a;java.mybatis.mapper.ParameterMapper 对应: resoureces.mybatis.mapper.ParameterMapper 否则在进行测试的时候会出现无效的绑定 Invalid b…

Mybatis中处理多对一的映射关系

数据库中的结构&#xff1a; 实体类&#xff1a; 最终结果&#xff1a; 一&#xff1a;级联属性查询 自定义resultMap中可以这样设置&#xff1a; <resultMap id"empAndDeptResultMapOne" type"Emp"><id property"eid" column"ei…

Mybatis中处理一对多的映射关系

一对多与多对一的区别&#xff1a; 以部门表为单位&#xff0c;一个部门会有很多员工为一对多的关系 以员工表为单位&#xff0c;会有多个员工在一个部门中为多对一的关系 一&#xff1a;collection 由于一个部门中会有多个员工&#xff0c;即一对多的关系因此我们需要的实体…

Mybatis中缓存

1、一级缓存 SqlSession sqlSession SqlSessionUtils.getSqlSession();CacheMapper mapper sqlSession.getMapper(CacheMapper.class);Emp emp1 mapper.getEmpByEid(1);System.out.println(emp1);Emp emp2 mapper.getEmpByEid(1);System.out.println(emp2); 可以看到只访问…

HTML页面、CSS样式的以及js学习与介绍

html决定页面显示什么内容 css决定页面的美观程度html语言是解释型语言&#xff0c;解释不出来就不管了&#xff0c;不区分大小写 浏览器是容错的1&#xff09;html页面由一对标签组成:<html><html/>&#xff0c;分别成为开始标签和结束标签 2&#xff09;title:表…

lwip连续发数据卡死_Mysteel:12月全球铁矿石发运量稳中微增 进口矿咋走?

十一月份铁矿石供需差收紧价格上行。展望十二月份&#xff0c; 全球铁矿石发运稳中微增&#xff0c;到港小幅下降&#xff0c;澳洲方面&#xff0c;力拓财年末冲量将带来部分增量&#xff0c;但BHP仍受检修影响环比或将有所减量&#xff0c;整体来看&#xff0c;预计澳洲发运量…

CS模式与BS模式以及Tomcat的了解

一、CS与BS的差异 二、Tomcat Tomcat :web container 可执行文件目录 配置文件 部署项目的一个文件夹&#xff08;现在不怎么用这种方法&#xff09; 在webapp中&#xff0c;可以创建自己的web项目&#xff1a; 里面需要包含一个文件夹&#xff1a;WEB-INF以及自己的网页 之后…

贴花纸怎么贴_电子便签贴怎么使用?怎么在电脑上贴便签

电脑上的电子便签贴怎么使用&#xff1f;怎么在电脑上贴便签&#xff1f;Windows电脑上的便签贴小工具有很多&#xff0c;以敬业签桌面便签贴为例&#xff0c;将这个便签贴小工具在电脑桌面上安装好之后&#xff0c;注册一个会员账号和密码&#xff0c;可参考如下教程演示的步骤…

Servlet学习

一、以添加数据为例 在add.html页面的表单中&#xff0c;我们输入数据&#xff0c;通过点击添加操作&#xff0c;根据action发给我们服务器端的add组件&#xff0c;这个add组件会用JDBC中添加的方法向数据库中添加数据。 1、add组件 AddServlet servlet&#xff08;服务器端…

b 树查找时间复杂度_心里没点 B 树。。。

B 树和红黑树的动画小吴还在制作当中&#xff0c;比想象中的复杂好多好多好多&#xff0c;今天先来一个图解版的 B 树。。。1 引言数据库的增删改查等操作是开发过程中最为常见也是尤为重要的&#xff0c;尤其是现在大数据的兴起&#xff0c;导致数据存储量急剧增加&#xff0c…

HTTP与会话的学习

一、HTTP协议 请求 1请求行 2、请求消息头 3、请求主体 响应 1、响应行 2、响应头 3、响应体 二、会话 HTTP无状态&#xff1a;服务器无法判断两次请求是否为同一个客户端发过来的。 因此通过会话跟踪来解决这个问题 Overrideprotected void service(HttpServletRequest req,…

3650m5服务器内存选择 ibm_各大品牌服务器租用价格表明细(附详细表单)

企业在进行IT建设的花费肯定不少&#xff0c;其中就包括了服务器租用。那如何租到性价比高的服务器&#xff1f;可以先了解一下各大品牌的报价情况&#xff0c;对比服务器租用价格表&#xff0c;找到价格合适的。不过也不可一味的遵从低价格&#xff0c;毕竟一分钱一分货也是一…

服务器内部转发以及客户端重定向概念的学习

一、服务器内部转发 一次请求响应的过程&#xff0c;对于客户端而言&#xff0c;内部经过了多少次转发是不知道的。 既地址栏不会变化 二、客户端重定向 客户端向上面的组件发送请求&#xff0c;组件里由response.sendRedirect方法指向demo07&#xff0c;于是服务器端里上面的…

cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法

石材幕墙屋面不锈钢角钢接闪带施工方法 摘要&#xff1a;石材幕墙屋面接闪带传统安装方法采用镀锌圆钢、不锈钢管明敷或加接闪小针等防雷方式&#xff0c;安装后易产生变形、幕墙漏水等问题&#xff0c;锈蚀会污染石材表面&#xff0c;影响建筑立面效果&#xff0c;清洗幕墙困…

JavaWeb中水果库存系统的学习

一、编辑和修改特定的信息 我们想达到的效果为&#xff1a;在页面点击一个水果&#xff0c;然后对这个水果进行编辑&#xff0c;之后更新页面。 第一步&#xff1a; 在水果名称这里增加一个超链接&#xff0c;点击可以跳转到编辑的页面中&#xff0c; th:href"{...}&qu…