1.mybatis中两种取值方式?
回答:Mybatis中取值方式有几种?各自区别是什么? Mybatis取值方式就是说在Mapper文件中获取service传过来的值的方法,总共有两种方式,通过 $ 和 # , # 是 我们最常用的方式。 我们都说Mybatis是封装了JDBC,所以两种方式的区别还要从JDBC上来说, # 实际上是封装了问号占位符赋值的 方式,会使用JDBC中的PreparedStatement,变量处用?号代替,防止SQL注入。 $ 直接拼接到sql语句中,值没有任何修饰,存在sql注入风险。 项目中 用 # 比较多,一般 # 和 $ 会配合使用。如果取值去的是字段名的时候,需要使用到 $ ,如:排序 order by ${列名} "列名" 案例: 使用#符号,如 select * from test where value=#{param} 传入参数param=”hello”后,实际生成 select * from test where value='hello' 。 使用$符号,$表示原本的字符串,即传什么参数,SQL中就填入什么。如 select * from test order by # {param} 传入参数param=”time”后,实际生成 select * from test order by time 。 回答:Mybatis中取值方式有几种?各自区别是什