遇到问题, 小注意点(document)

5.项目启动时报错Type handler was null on parameter mapping for property 'userId'.

原文:https://blog.csdn.net/u014763172/article/details/47806521

原因: 表列属性与实体属性对应不上.传递出错.出现此类问题,检查提示的property属性名所出现的地方.

4.类型对应写法json写法

private String getTrandMode(String trandMode){
    String regTypeJson = "{1:\"06\",9:\"08\"}";    //a->b类型对应关系
    Map regTypeMap = JSONObject.parseObject(regTypeJson);    //json转Map
    if (regTypeMap.containsKey(trandMode))    //进行比较处理
    {
       trandMode = regTypeMap.get(trandMode).toString();
    }
    return trandMode;
}
-------------------------------------------------------------------------------------------------------------

3.异常"There is no getter for property named 'id' in class 'java.lang.String'"

原因: 在开发中,还是偷懒,就在mapper.xml中将多出来的参数没有删掉,导致该异常.(说不明白,上图)

Dao文件:

mapper.xml文件:

 

-------------------------------------------------------------------------------------------------------------

2.异常"could not set property 'doctype' of..."

 情景: 在项目维护二次开发时,修改 Mybatis 的 Mapper.xml 文件,且项目不报错;但是运行时报错;

原因: 在开发时,自己偷懒,直接使用了别人之前写的实体类. 来与作为数据库表的封装实体类. 结果对应不上(即表字段与实体类字段匹配不上,
报此错). 
解决办法: 数据库表字段与实体类字段一一对应, 如果实体类字段更多或者实体类字段更多, 则将不对应(多出来的)字段删去,在 mapper,xml 中
形成一个结果集.(如图: 将不对应的字段去除即可)

    建议: 最好不要偷懒,重新写一个实体类,来作为表的封装实体. (但是,有时候不得已,则只好如上操作.)

-------------------------------------------------------------------------------------------------------------

1.情景: document中的某个节点的值类似于document的节点形式,即含有"<a>...</a>"这样的形式作为值.使用asXml()方法将document转化为String时,

出现值中的"<"和">"分别被转义为"&lt"和"&gt";导致异常.需处理.

方法1:
/* 当使用Document方法asXml()时,非节点中有 "<" 和 ">"  时,会对其进行转义成 "&lt" 和 "&gt",故此进行处理 */
String checkParamsData = checkParams.value();
if (!checkParamsData.isEmpty()){
    String str1 = checkParamsData.replaceAll("&lt;", "<");
    String str2 = str1.replaceAll("&gt;", ">");
    checkParamsData=str2;
}

方法2:
String str="a%sc";
str=String.format(要格式化的数据str,占位值1)
例:
String payResult = "<paytype>%s</paytype><termid>%s</termid><tradeno>%s</tradeno><tradeamt>%s</tradeamt><tradetime>%s</tradetime><biztype>%s</biztype><memo>%s</memo>";
payResult = String.format(payResult, payType, params.get(ParamsKeyConstant.OPER_ID), params.get(ParamsKeyConstant.TRANS_NO), selfFee, params.get(ParamsKeyConstant.TRADE_TIME), bizType, "");

猜你喜欢

转载自blog.csdn.net/o_nianchenzi_o/article/details/80189952