mybatis使用小记

1,当传递单个参数的时候,eg:

parameterType="java.lang.Long"

这时候在sql语句里面引用变量方式:

      <if test="_parameter != null">
          and c.content_id = #{_parameter}
      </if>

2, 获取刚刚插入的自增主键:

    <insert id="insertNewsCommentExt" parameterType="Comment" useGeneratedKeys="true" keyProperty="id">
        <!-- <selectKey resultType="java.util.Long" keyProperty="id">
            SELECT LAST_INSERT_ID() as id
        </selectKey> -->
        insert into jc_comment_ext(ip, text) values(#{ip}, #{comment})
    </insert>

    /**
     * 插入评论
     * @param comment
     */
    public void insertNewsComment(Comment comment){
        Long result = commonDao.insertNewsCommentExt(comment);
        commonDao.insertNewsComment(comment);
    }

说明:此时id自动赋值到comment对象中去,insert语句返回sql执行结果.

3、返回Map

/*static Map<Integer, String> keyMap = null;
static{
   keyMap = new HashMap<Integer, String>();
   keyMap.put(0, "totalSystem");
   keyMap.put(1, "totalInnerSite");
}
@Override
public Map<String, Integer> countOfUnReadMsg(MsgWebLog msgWebLog) {
   Map<String, Integer> r = new HashMap<String, Integer>();
   Map<String, Object> condition = new HashMap<String, Object>();
   condition.put("userId", msgWebLog.getUserId());
   List<Map<String, Object>> result = msgWebLogDao.countOfUnReadMsg(condition);
   for (int i = 0 ; i<result.size(); i++){
      Map<String, Object> map = result.get(i);
      if(map.containsKey("msgType")){
         r.put(keyMap.get(map.get("msgType")), (Integer)map.get("count"));
      }
   }
   return r;
}*/

4、mybatis中文官方文档中(http://mybatis.org/mybatis-3/zh/sqlmap-xml.html):

尽管所有这些强大的选项很多时候你只简单指定属性名,其他的事情 MyBatis 会自己去推断,最多你需要为可能为空的列名指定 jdbcType

其中,或将需要给可能为空的字段指定jdbcType,尤其是一些特殊类型,如:Date类型(其他处理如在数据源追加:

&amp;zeroDateTimeBehavior=convertToNull


你可能感兴趣的:(mybatis使用小记)