NutzCN Logo
问答 使用sqls.create执行带出参的存储过程,中文乱码
发布于 2831天前 作者 qq_9ffe862f 2097 次浏览 复制 上一个帖子 下一个帖子
标签:

使用sqls.create执行带出参的存储过程,出参为中文,使用sql.getOutParams出参显示为乱码,求助该怎么解决

6 回复

用普通sql去查,乱码吗?

用封装的fetch,query没问题

上代码看看

Sql sql = Sqls.create("CALL PRO_RECEIVE_" + stBusCode + "(@stReservationNum,@nmInsertUser,@OUTresult,@OUTnmRecId,@OUTerrorMessage)");
		sql.params().set("stReservationNum", stReservationNum);
		sql.params().set("nmInsertUser", UserUtils.getUserIdFromSession(session));
		sql.params().set("OUTresult", Types.VARCHAR);
		sql.params().set("OUTnmRecId", Types.INTEGER);
		sql.params().set("OUTerrorMessage", Types.VARCHAR);
		dao.execute(sql);
		Record re = sql.getOutParams();
		String result = "N";
		if(re.get("result") != null){
			if("Y".equals(re.get("result"))){
				//存储过程执行成功
				result = "Y";
				Integer nmRecId = Integer.valueOf((String) re.get("nmRecId"));
				map.put("nmRecId", nmRecId);
			}else{
				//存储过程执行失败
				String errorMessage = String.valueOf(re.get("errorMessage"));
				map.put("errorMessage", errorMessage);
			}
		}

数据库字符集编码是西文的,不是中文

试试jdbc吧,暂时没想到哪里有问题

添加回复
请先登陆
回到顶部