ParameterType
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (id, name) VALUES (#{id}, #{name})
</insert>
public class User{
String name;
Integer id;
}
ParameterMap
property指定是数据库的字段名字, jdbcType是转换为数据库的什么类型
mode:
- IN: 表示参数作为输入参数, 即java对象的属性值传递给sql语句作为参数
- OUT: 表示参数作为输出参数,将SQL语句的执行结果传递给Java对象的属性值中
- INOUT: 表示参数即是输入又是输出
<parameterMap id="userParamMap" type="com.example.User">
<parameter property="id" jdbcType="INTEGER" mode="IN" />
<parameter property="name" jdbcType="VARCHAR" mode="IN" />
</parameterMap>
<select id="getUser" parameterMap="userParamMap" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id} AND name = #{name}
</select>
ResultType
<select id="getUser" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
ResultMap
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="user_id" />
<result property="name" column="user_name" />
<result property="email" column="user_email" />
</resultMap>
<select id="getUser" resultMap="userResultMap">
SELECT user_id, user_name, user_email FROM users WHERE id = #{id}
</select>