1.parameterType和resultType

在映射文件中通过parameterType指定输入参数的类型,通过resultType指定输出结果的类型。

2.#{}和${}

#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojohashmap

如果接收简单类型,#{}中可以写成value或其它名称。

#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

${}表示一个拼接符号,会引用sql注入,所以不建议使用${}

${}接收输入参数,类型可以是简单类型,pojohashmap

如果接收简单类型,${}中只能写成value

${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

3.当传入的参数为一个pojo对象,来增加记录时

parameterType:指定输入 参数类型是pojo(包括 用户信息)

#{}中指定pojo的属性名,接收到pojo对象的属性值

id:标识 映射文件中的 sql,将sql语句封装到mappedStatement对象中,所以将id称为statement的id

insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})

4.当传入的参数为简单类型,来查询一条记录时

如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称

resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。

SELECT * FROM USER WHERE id=#{value}

5.根据用户名称模糊查询用户信息,返回一条或多条记录时

resultType:指定的仍是单条记录所映射的java对象

SELECT * FROM USER WHERE username LIKE '%${value}%'

6.自增主键的表中添加用户,并将主键值返回到user对象中

SELECT LAST_INSERT_ID()insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})

7.使用mysql的uuid()生成主键的表中添加用户,并将主键值返回到user对象中

SELECT uuid()insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})

8.sql片段的定义与使用

 sql片段的定义,id时sql片段的唯一标识

and user.sex = #{userCustom.sex}
and user.username LIKE '%${userCustom.username}%'
 
id=#{user_id}

  sql片段的使用

SELECT * FROM USER

9.resultMap的使用

  定义resultMap

 
 
 
 
 
  

  使用resultMap进行输出映射

SELECT id id_,username username_ FROM USER WHERE id=#{value}