Seasar容易同Mybatis来比,说实在的Seasar相比Mybatis来说,封装得更加的严实,必须按照他的规则来走,比如删除和更新的添加的方式都必须按照他的方式来
方法命名规范
多的不说,大家瞅一眼,命名需要遵循他的规则,不然就会报错,实际上,他的封装中,如果你是插入、更新、删除,S2Dao走的是Prestatement的executeUpdate的方法,如果是检索的情况,就是走的executeQuery的方法,所以这个就是他要有一个命名规则的原因
insertXXX方法只能插入一个对象,如果insertXX命名,可能报错,导致程序执行问题,下面是例子
@S2Dao(bean=KDemo.class)
public interface KDemoDao {
@Sql("SELECT COUNT(FISCAL_YEAR) FROM K_TRN_BUDGET WHERE CONTRACT_NUMBER = ? AND FISCAL_YEAR <> ?")
public String getFYearForCheck(String keiyakuNo, String keiyakuNendo);
@Sql("DELETE FROM K_TRN_BUDGET WHERE CONTRACT_NUMBER = ? AND CONTRACT_KBN = '001'")
public int delete(String contractNumber);
public int insert(KDemo dto);
@Sql("DELETE FROM /*$table*/ /*$strWhere*/")
@Arguments({"table","strWhere"})
public int deleteTbl(String table,String strWhere);
@Sql("INSERT INTO /*$table*/ (/*$cols*/) VALUES (/*$vals*/)")
@Arguments({"table","cols","vals"})
public int addTbl(String table,String cols,String vals);
}
如果是自定义sql插入数据,使用addXX方法建议使用,使用其他命名方式会报错