Mybatis中$和#取值的区别
- mybatis中通常会有传参数的方法要用到,有时候查询条件以及条件的值都需要方法参数传过来,在数据库中用以查询.
- #取值的时候,是将参数中的值当做字符串进行处理,而
是将参数中的值当做字符处理,简单的将——–比如我现在要查询数据库中company=”tengxun”的记录方法findByItem(Stringcondition,Stringvalue);DAO操作时,condition中传入的参数是company(即是数据库中得名为company的一个字段),value中传入的是tengxun那么mysql语句写为select∗fromtablewhere {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中一样根据需要进行编写.
例如:
4.spring mvc中的mapper映射类中的方法名称不能重复(重载在这不能用),因为每一个方法名称都会被注册为一个id用以调用转化的mapper方法