项目场景:
因为一些原因不能debugger,取巧把数据传入到数据库
发现String的equals 方法返回值传入到数据库发生变化
String BussFlowSql = "select u1.sjlcbh,u2.istb from uf_chance_approval u1 , uf_contract_bid u2 where u1.requestid = u2.chanceflow and u2.requestid = '"+ requestid +"' ";
Map BussFlowMap = baseJdbcDao.executeForMap(BussFlowSql); //获取 编号
String sjlcbh = StringHelper.null2String(BussFlowMap.get("sjlcbh"));
String istb = StringHelper.null2String(BussFlowMap.get("istb"));
baseJdbcDao.update("UPDATE LW_TEST_20220412 SET FZRQ = ?,SFZBTZS = ?,COL1 =? WHERE COMPNAME = 'ZD03088' ",istb,istb.equals("2c91a0302aa21947012aa31fc13e00ab"),istb.equals("2c91a0302aa21947012aa31fc13e00ac"));
问题描述
boolean 传入到数据库变为0,1
原因分析:
高概率内部有类型转换机制,数据库为oracle,字段设置的varchar2
解决方案:
类型转换为String再传入