Mybatis持久化接口中声明的方法返回值问题
在mybatis操作中接口中的方法可以定义成有返回值当你只调用方法时它只执行和它相关的方法,当你调用它并且将它的返回值赋值给一个返回值类型时就可以将相关信息打印出来,这里你可能想"我们并没有定义它的具体实现方法怎么返回信息" 它返回的信息和SQL语句和返回值类型相关
增删改的有返回值类型只能为Interge和Boolean
- 方法返回值类型为Interge 返回信息为受影响的行数
- 方法返回值类型为Boolean 返回信息为操作成功与否
- 查询的返回值类型可以为引用类型
- 方法返回值类型为容器时 返回信息为所查询到的对象集合
…
mybatis 智能化,会根据你的返回值类型来自动确定
获取参数值的两种方式
基本区别
- ${ }类似与JDBC中的Statement编译SQL语句的方式,必须使用字符串拼接的方式。一定要注意单引号问题
- #{ }类似与JDBC中的PreparedStatement编译SQL语句的方式。使用通配符
使用建议:建议使用#{ },在特许情况下使用${ },例如模糊查询和批量删除
不同参数类型,#{ }和${ }的不同取值方式
-
当传输参数为单个String或者基本数据类型和其包装类时
#{}:可以以任意名字获取参数
${}:只能以 ${value}或者 ${_paramter}获取 -
当其传输参数类型为JavaBean时
#{}和 ${}都可以以任意名字获取参数,但 ${}要注意单引号问题 -
当传输多个参数时,mybatis会默认把这些参数放在Map集合中
#{}:#{0},#{1} ,…或者 #{param1},#{param2}…
${}:只能用 ${param1}, ${param2}… 注意 $ 的单引号
当传输Map参数时
#{}和 ${}都可以通过键获取参数,但 ${}要注意单引号问题