好久没有来谢谢总结性的东西了,一直在赶项目进度,终于忙完了,今天就来说说项目过程中遇到的一些问题:
1、关于在使用@Param的用法,在前面也说过了一点,但是在实际使用中还遇到了一个问题。就是在Mapper中使用@Param和在ServiceImpl中使用@Param的区别。之前我没有注意到这个问题,然后一次解决问题的过程中,发现我在ServiceImpl和Service中也使用了@Param,但是我现在还是不是很明白ServiceImpl和Service能不能用。在调用方法时候,项目也能跑通,为了技术上的严谨,这个问题我一定会询问清楚地!!!即使不影响Mapper.xml的使用。
(1)在Spring中使用@Param那么在SQL语句中入参名用0、1.....等来代替参数名;
例如:
Integer getId(@Param("id") Integer id,@Param("uId") Integer uId); //抽象类
SELETE * FROM BOKE WHERE id = #{0,jdbcType=INTEGER} AND uId = #{1,jdbcType=INTEGER}; //SQL语句
(2)在Mybatis中使用@Param那么在SQL语句中入参名用实际参数名来代替。
例如:
Integer getId(@Param("id") Integer id,@Param("uId") Integer uId); //抽象类
SELETE * FROM BOKE WHERE id = #{id,jdbcType=INTEGER} AND uId = #{uId,jdbcType=INTEGER}; //SQL语句
2、枚举中我们会列举好几个值,例如:
public enum a{
//debug指令
DEBUG(0,"DEBUG"),
//停止指令
STOP(1,"STOP"),
//上传指令
UPLOAD(2,"UPLOAD"),
//热修复
HOTFIXE(3,"HOTFIXE");
.....
}
这里的枚举值,我在项目中用了values这个方法,但是网上说源码中没有此方法的介绍。a.values()这个其实是用来随记取出枚举值的。然后我们可以定义一些get和set方法,从而可以获取code和name。