Mybatis获取参数值的各种情况(mybatis获取数据库类型)

  本篇文章为你整理了Mybatis获取参数值的各种情况(mybatis获取数据库类型)的详细内容,包含有mybatis获取数据源 mybatis获取数据库类型 mybatis获取map里的参数 mybatis获取表字段 Mybatis获取参数值的各种情况,希望能帮助你了解 Mybatis获取参数值的各种情况。

  

 

 

  比如说上面这行代码,里面的1,我们看到的是1,它实际的值也是1,这就是字面量;再比如里面的a,我们看到的是a,但它的值并不是a而是1,这叫变量。

  根据用户名root查找用户信息

  
{} 占位符赋值

  通过日志信息可以看到sql语句中 #{} 被占位符?代替。

  注意:映射文件中 #{username}的参数可以写成任意的

  

select * from t_user where username = #{username}

 

  # 可以写成

  select * from t_user where username = #{name}

  select * from t_user where username = #{abc}

  select * from t_user where username = #{helloworld}

  

 

  因为mybatis执行映射文件的底层代码中也不知道你的参数名叫username,只是一一对应。但是建议写成username。

  
如果直接将# 改为 $ ,执行会报错,我们分析一下错误原因

  

select * from t_user where username = ${username}

 

  

 

  可以看到这里root直接拼接到sql中,我们知道sql语句的字符串类型是要加单引号的,而这里没有,就把root当成了一个变量,下面报错信息说的就是找不到这么root。

  正确做法:加个单引号

  

select * from t_user where username = ${username}

 

  

 

  同样的${username}的参数可以写成任意的,除了数字之外

  
使用arg0、arg1或param1、param2:

  

select * from t_user where username = #{arg0} and password = #{arg1}

 

  # 也可以写成

  select * from t_user where username = #{param1} and password = #{param2}

  

 

  若mapper接口中的方法参数为多个时,此时MyBatis会自动将这些参数放在一个map集合中,以两种方式存储数据:

  以arg0,arg1...为键,以参数为值

  以param1,param2...为键,以参数为值;

  你甚至可以混合使用两种方式,自己注意别弄混就行

  因此只需要通过 ${} 和 #{} 访问map集合的键就可以获取相对应的值,注意 ${} 需要手动加单引号

  当然我们也可以自定义键名,具体方法看后面讲的使用@Param标识参数

  
若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在
 

  map中
 

  只需要通过${}和#{}访问map集合的键就可以获取相对应的值,注意${}需要手动加单引号

  5. 实体类类型的参数

  若mapper接口中的方法参数为实体类对象时
 

  此时可以使用${}和#{},通过访问实体类对象中的属性名获取属性值,注意${}需要手动加单引号

  手动创建一个User对象:

  6. 使用@Param标识参数

  使用最广泛的

  可以通过@Param注解标识mapper接口中的方法参数 ,这样就可以自定义map集合中的键名,而不是只能用前面讲的arg0、arg1和param1、param2

  建议除了5中实体类类型的参数,其他的我们都加上@Param注解,即使用@Param标识参数

  部分内容来自 B站尚硅谷课程 。老师讲得很好,有兴趣的可以听听。

  以上就是Mybatis获取参数值的各种情况(mybatis获取数据库类型)的详细内容,想要了解更多 Mybatis获取参数值的各种情况的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: