UserMapper.xml中标签元素:
id: statement唯一标示
parameterType:参数类型.java类型(全类名或别名)
resultType:结果集类型 全类名
resultMap:自定义结果集(当类中的属性名和表中的字段名称不一致时,如类中为userId,表中为User_id,就要自定义结果集,用来匹配属性和字段)
//自定义结果集
<resultMap id="userMap" type="com.test.po.User">
<id column="user_id" property="userId"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
</resultMap>
<insert id="addUser" parameterType="user">
insert into t_user(username,password) values
(#{username},#{password})
</insert>
接口命名规范:
- 接口名必须和 配置文件名一致 例如:userMapper.java –>userMapper.xml
- 接口中的抽象方法名,参数类型,返回值必须和配置文件中的对应项一致
如:方法名–>id, 参数类型–>parameterType, 返回值–>resultType或resultMap - 配置文件名必须和接口的全类名一致
如: 接口全类名为 com.test.dao.UserMapper
namespace=”com.test.dao.UserMapper
- 以前的写法就可以更加安全规范了如下:
@Test
public void addUser()
{
SqlSession session = M3Util.getSession();
String statement = "com.test.dao";
session.insert(statement,new User(0,username,password));
session.commit();
session.close();
}
//安全规范
public void addUser()
{
sqlSession session = M3Util.getSession();
//通过反射获取到接口的实现类
UserMapper userMapper = session.getMapper(UserMapper.class);
userMapper.insert(new User(0,username, password));
}
关于update要注意做判断
//注意此处set,if的使用
<update id="updUser" parameterType="com.test.po.User">
update t_user
<set>
<if test="username != null">
username=#{username},
</if>
<if test="password != null">
password=#{password},
</if>
<if test="birthday != null">
birthday = #{birthday},
</if>
</set>
where user_id=#{userId}
</update>
693

被折叠的 条评论
为什么被折叠?



