迁移时间:2017年6月1日16:09:02
Author:Marydon
(四)IBATIS + ORACLE
UpdateTime--2017年5月31日10:49:34
第二部分:提升篇
1.4.2.1 新增&修改共用一个SQL
<!-- 新增和修改使用一个SQL语句搞定 -->
<insert >
DECLARE
n_count number(1);
BEGIN
SELECT count(1) INTO n_count FROM TDICTICDCLASS
WHERE FCLASSID=#FCLASSID#;
IF n_count=0 THEN
INSERT INTO TDICTICDCLASS(FCLASSID,FCLASSNAME,FICDFM,FPLVCODE)
VALUES(#FCLASSID:VARCHAR#,#FCLASSNAME:VARCHAR#,#FICDFM:VARCHAR#,#FPLVCODE:VARCHAR#);
ELSE
UPDATE TDICTICDCLASS
<dynamic prepend="SET">
<isNotEmpty prepend="," property="FCLASSID">FCLASSID=#FCLASSID#</isNotEmpty>
<isNotEmpty prepend="," property="FCLASSNAME">FCLASSNAME=#FCLASSNAME#</isNotEmpty>
<isNotNull prepend="," property="FICDFM">FICDFM=#FICDFM#</isNotNull>
<isNotEmpty prepend="," property="FPLVCODE">FPLVCODE=#FPLVCODE#</isNotEmpty>
</dynamic>
WHERE FCLASSID=#FCLASSID#;
END IF;
END;
</insert>
2022年2月7日10:59:01
说明:begin end块中只能添加insert、update、delete之类的,不能添加纯粹的select语句(可以使用select...into...)。
批量操作以排班表为例
1.4.2.2 批量新增
1.4.2.4 批量删除
js取值方式,注意事项 同上
<delete >
DELETE FROM CONSULT_SCHEDULE WHERE CONSULT_SCHEDULE_ID IN ($CONSULT_SCHEDULE_ID$)
</delete>
1.4.2.5 调用存储过程
CreateTime--2017年1月10日10:42:49
sqlmap文件配置
第四步:Dao层获取返回数据
/**
* 三目录对照错误信 息汇总查询
* @param mapParam
* @return
* @throws DaoException
*/
public List<Map<String, Object>> getSHEHE_ERROR_DATA(Map mapParam) throws DaoException {
List list = null;
try {
//用这两步实现接收返回数据
sqlMap.queryForList("xnh.config.orgitem.getSHEHE_ERROR_DATA", mapParam != null ? mapParam : new HashMap());
list = (List) mapParam.get("out_cur");
} catch (Exception e) {
String err = "查询出错->出错原因:" + e.getMessage();
log.error(err, e);
throw new DaoException(err, e);
}
return list;
}
2021年11月16日10:35:07
ibatis使用动态值使用$$包住参数值即可,如:
ZJM like '$ZJM$%'
2022年1月5日10:31:21
也可以
<isNotEmpty prepend="and" property="CHINESENAME">
T.CHINESENAME like CONCAT(#CHINESENAME#,'%')
</isNotEmpty>
2021年11月24日18:31:02
Oracle还可以使用管道符
<isNotEmpty prepend="and" property="AccessType">
T.ACCESSID like #AccessType# || '%'
</isNotEmpty>