02-Mybatis

1.Map集合

如果,字段名或者数据库中的表过多,可以使用map集合进行对实体类的传值,这样的话,在传值时只需要对应map的键名,不需要知道数据库中字段的名字

前:

<insert id="insertUser" parameterType="com.neusoft.entity.User">
insert into users(id,name,password,email) values(#{id},#{name},#{password},#{email})
</insert>
后:
<insert id="insertUser" parameterType="com.neusoft.entity.User">
insert into users(id,name,password,email) values(#{userid},#{username},#{userpassword},#{useremail})
</insert>

 2.面试题:mybatis中#{}与${}的区别?

(1)#{}是占位符的意思,其中参数的名字可以任意取

(2)#{}在传值时会将{}中的值自动加上“”

(2)#{}能在很大程度上防止sql注入

(3)${}是用来拼接字符串的

(4)${}只能写value ${value},即将{}中的值直接显示在sql语句中

(5)${}不能防止sql注入

(6)${}这种方式大部分用来传入数据库对象,例如表名之类,不含表内信息的内容,不过能用#就不要用$

3.关于parameterType的写与不写以及写什么的说明

如果是使用map传参,parameterType=“map”

如果传递的时实体类或其他引用类型参数 parameterType=“object”

如果参数是一个一个基本数据类型,则parameterType可以略写,因为sql可以直接取到

4.模糊查询

推荐方式:

select * from users where name like #{name}
List<User> list= mapper.getUserLike("%睿%");
原文地址:https://www.cnblogs.com/rongrui/p/13548943.html