MyBatis,进阶

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>

接口命名规范:

  1. 接口名必须和 配置文件名一致 例如:userMapper.java –>userMapper.xml
  2. 接口中的抽象方法名,参数类型,返回值必须和配置文件中的对应项一致
    如:方法名–>id, 参数类型–>parameterType, 返回值–>resultType或resultMap
  3. 配置文件名必须和接口的全类名一致
    如: 接口全类名为 com.test.dao.UserMapper
    namespace=”com.test.dao.UserMapper
    1. 以前的写法就可以更加安全规范了如下:
@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>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值