当前位置: 首页 > news >正文

解决SQLException: Incorrect string value异常

java开发中会遇到如下异常

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x95\xB32:...' for column 'baseInfo' at row 1
### The error may involve com.fsl.zmt.dao.PoiInfoSkuDao.save-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO mt_poi_info_sku (dealId, poiId, name, baseInfo, bookRule, useRule, refundRule, date,status, marketPrice, sellPrice, settlePrice, stockType, stock, stockMode, createTime) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, now());
### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x95\xB32:...' for column 'baseInfo' at row 1

毫无疑问,是数据编码问题导致的db异常

记录一下我的快速解决方案:

1:针对报的数据库表字段修改字段编码

        ALTER TABLE mt_poi_info_sku MODIFY COLUMN baseInfo LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2:springboot工程datasource初始化变动

新增:        dataSource.setConnectionInitSqls(Arrays.asList("set names utf8mb4;"));

	@Beanpublic DruidDataSource dataSource(){System.out.println("----------------"+url);DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);dataSource.setMaxActive(maxActive);//dataSource.setMaxIdle(maxIdel);dataSource.setMaxWait(maxWait);dataSource.setInitialSize(50);dataSource.setInitialSize(10);dataSource.setValidationQuery("SELECT 1");dataSource.setTestOnBorrow(true);dataSource.setTimeBetweenEvictionRunsMillis(60000);		//配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒dataSource.setMinEvictableIdleTimeMillis(300000);		//配置一个连接在池中最小生存的时间,单位是毫秒dataSource.setConnectionInitSqls(Arrays.asList("set names utf8mb4;"));return dataSource;}

http://www.lryc.cn/news/91124.html

相关文章:

  • 桂院校园导航 导入 与 配置教程
  • Linux上安装jdk Tomcat mysql redis
  • Postman中加url环境变量和token全局变量
  • 多线程事务回滚方法
  • java单元测试( Hamcrest 断言)
  • 讨论和总结 树模型 的三种序列化 方式的区别(模型存储大小、序列化所用内存、序列化速度)...
  • Halcon中的一些3D算子
  • Android:Selector + Layer-lists 实现 AppCompatCheckBox
  • TreeMap类型添加数据
  • iOS 16 UI 设计系统免费在线使用方法
  • 【接口测试】JMeter接口关联测试
  • 腾讯云服务器ping不通解决方法(公网IP/安全组/系统多维度)
  • 【C++/嵌入式笔试面试八股】一、32.封装
  • 【算法】Transform to Chessboard 变为棋盘
  • vue通过封装$on定义全局事件
  • 资产管理规范
  • 已解决:如何从别人的仓库那里克隆到自己的仓库,并修改代码并提交。
  • 剑指 Offer 18. 删除链表的节点
  • WiFi 6 vs WiFi 5
  • PHP语言基础
  • 怎么用Excel VBA写一个excel批量合并的程序?
  • WuThreat身份安全云-TVD每日漏洞情报-2023-05-22
  • Eclipse教程 Ⅵ
  • Seaborn.load_dataset()加载数据集失败最佳解决方法
  • java 区分缺陷Defects/感染Infections/失败Failure
  • 如何学习R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合?
  • 分布式锁的应用场景与分布式锁实现(二):基于Redis实现分布式锁
  • 【JavaSE】Java基础语法(四十二):NIO
  • Linux---systemctl
  • 零钱兑换,凑零钱问题,从暴力递归到动态规划(java)