Mybatis中$和#取值的区别

  1. mybatis中通常会有传参数的方法要用到,有时候查询条件以及条件的值都需要方法参数传过来,在数据库中用以查询.
  2. #取值的时候,是将参数中的值当做字符串进行处理,而,company=tengxunfindByItem(Stringcondition,Stringvalue);DAO,conditioncompany(company),valuetengxunmysqlselectfromtablewhere{condition}=#{value}

例如:
@Select(“select * from” +
“(select id,owner,company,develop_depat,developer,developLanguage,type,parent_name,parent_english_name,system_name,system_english_name,system_platform,status,remarks from system_info ” +
“where ${searchType}=#{searchValue}) as SysTable” +
” limit #{startNum},#{endNum}” )
ListfindAllByItems(@Param(“searchType”) String searchType, @Param(“searchValue”) String searchValue, @Param(“startNum”) int startNum, @Param(“endNum”) int endNum);

2.SQL语句中limit m,n的含义是跳过m条数据,向后查询n条,这一点误解的话在做分页处理的时候会出现错误。

3.Mybatis中使用注解时使用”“”标签后,里边的内容可以像在mapper.xml中一样根据需要进行编写.
例如:
Mybatis中$和#取值的区别

4.spring mvc中的mapper映射类中的方法名称不能重复(重载在这不能用),因为每一个方法名称都会被注册为一个id用以调用转化的mapper方法