入参
如果是对象使用@Param注解。
#{}编写形式
1.只有一个实体类
如果不使用@Param注解,SQL内部直接使用字段名称。
mapper:
void addUserRole(SysUserRole entity);
sql:
<insert id="addUserRole">
INSERT INTO sys_user_role VALUES (#{id}, #{userId}, #{roleId})
</insert>
如果使用@Param注解,则SQL内部必须使用“别名.字段名称”
mapper:
void addUserRole(@Param("entity") SysUserRole entity);
sql:
<insert id="addUserRole">
INSERT INTO sys_user_role VALUES (#{entity.id}, #{entity.userId}, #{entity.roleId})
</insert>
返回值
结果为实体类
使用resultType。
<select id="check" parameterType="entity.Staff" resultType="java.lang.String">
select
1
from staff
</select>
映射结果集
使用resultMap,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。
实体类:
public class Butcher {
private String id;
private String name;
private String butcherNo;
private String creditCode;
private String levelCode;
private String levelName;
private List<ButcherType> typeList;
}
public class ButcherType {
private String id;
private String butcherId;
private String typeName;
private String typeCode;
private String number;
}
先定义resultMap:
<resultMap id="BaseMap" type="entity.Butcher">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="butcher_no" property="butcherNo"/>
<result column="credit_code" property="creditCode"/>
<collection property="typeList" ofType="com.sx.entity.ButcherType">
<id property="id" column="t_id"/>
<result property="typeCode" column="t_type_code"/>
<result property="typeName" column="t_type_name"/>
<result property="number" column="t_number"/>
<result property="butcherId" column="butcher_id"/>
</collection>
</resultMap>
SQL语句:
<select id="findList" resultMap="BaseResultMap">
</select>