mysql errorcode 1366_SQL state [HY000]; error code [1366]

SQL state [HY000]; error code [1366]

Caused by: org.springframework.jdbc.UncategorizedSQLException:

### Error updating database.  Cause: java.sql.SQLException: Incorrect string value: '\xE5\xB9\xB4\xE6\xAF\x95...' for column 'userData' at row 1

### The error may involve HbbResourceVideoInfo.replaceHBBUserInfo-Inline

### The error occurred while setting parameters

### SQL: replace into tbl_hbb_user_info (mobile,userData) values(?,?)

### Cause: java.sql.SQLException: Incorrect string value: '\xE5\xB9\xB4\xE6\xAF\x95...' for column 'userData' at row 1

; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE5\xB9\xB4\xE6\xAF\x95...' for column 'userData' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE5\xB9\xB4\xE6\xAF\x95...' for column 'userData' at row 1

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399)

at com.sun.proxy.$Proxy27.insert(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:253)

at com.allcam.andedu.abc.daoall.bdb.dao.impl.HbbResourceVideoDaoImpl.replaceHBBUserInfo(HbbResourceVideoDaoImpl.java:135)

... 71 more

Caused by: java.sql.SQLException: Incorrect string value: '\xE5\xB9\xB4\xE6\xAF\x95...' for column 'userData' at row 1

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)

Map map = new HashMap<>();

map.put("mobile", userInfo.getPhone());

map.put("userData", StringUtil.encodeEmoji(JsonParseUtil.obj2Json(userInfo)));

HbbResourceVideoDao.replaceHBBUserInfo(map);

public static String encodeEmoji(String orgStr)

{

if (StringUtil.isNull(orgStr))

{

return orgStr;

}

String temp = orgStr;

Pattern pattern = Pattern.compile("[^\u0000-\uffff]", Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(orgStr);

while (matcher.find())

{

StringBuilder sb = new StringBuilder("[em:");

String mStr = matcher.group();

for (int i = 0; i < mStr.length(); i++)

{

int emoji = mStr.charAt(i);

if (i < mStr.length() - 1)

{

sb.append(emoji).append('-');

}

else

{

sb.append(emoji).append(']');

}

}

temp = temp.replaceAll(mStr, sb.toString());

}

return temp;

}

public static String decodeEmoji(String orgStr)

{

if (StringUtil.isNull(orgStr))

{

return orgStr;

}

String temp = orgStr;

Pattern pattern = Pattern.compile("\\[em:[\\d\\-]+\\]", Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(orgStr);

while (matcher.find())

{

StringBuilder sb = new StringBuilder("\\[em:");

StringBuilder emojiSb = new StringBuilder();

String mStr = matcher.group();

String[] emojis = mStr.substring(4, mStr.length() - 1).split("-");

for (int i = 0; i < emojis.length; i++)

{

int emoji = Integer.parseInt(emojis[i]);

emojiSb.append((char)emoji);

if (i < emojis.length - 1)

{

sb.append(emoji).append("\\-");

}

else

{

sb.append(emoji).append("\\]");

}

}

temp = temp.replaceAll(sb.toString(), emojiSb.toString());

}

return temp;

}

另外一个问题

Data truncation: Data too long for column 'userData' at row 1

text --》 longtext

402bbcd98da24b5acdc4fe72596d5a75.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值