关于使用mySqlSugar插入数据异常解决方案
2024-09-06 12:51:13
项目的解决方案中引用的有mysqlsugar的数据库操作库,在使用插入数据过程中一些特殊的生僻字或表情符号总会提示:
Incorrect string value: '\xF0\x9F...' for column 'name' at row 1
这是由于UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。
进而提示\x十六进制的字符串信息。
因为myselsugar ,也是对sqlsugar的进一步封装。所以将目光聚焦在sqlsugar上就可以了。
sqlsugar给的解决方案是:
在定义实体时将临时保存特殊字符的变量mapping(映射)sqlsugar中的[SqlSugar.SugarColumn(IsTranscoding =
true
)]
//设置该自段转码 属性
例:
using System;
using System.Linq;
using SqlSugar; namespace ClearMonitor.Model.Entities
{
[SqlSugar.SugarTable("departmentintro")]
public class DepartmentintroData
{
public int DepartmentId { get; set; }
public string DepartmentNo { get; set; }
public string DepartmentName { get; set; }
/// <summary>
/// 部门简介
/// </summary>
[SqlSugar.SugarColumn(IsTranscoding =true)]
public string DepartmentBlurb { get; set; } }
}
最后是官方论坛的解决方案,也贴在下面了。MySql插入表情方案,感谢支持。如有问题请及时沟通联系。
补充说明:实体特性API
ColumnName | 定义数据库表字段的真实名称,当一样的时候可以不定义该特性 |
IsIgnore | 不作数据库操作,true将不会进行查询、添加等操作 |
IsPrimaryKey | 标识是否为主键,更新的时候会根据主键值判段更新哪条,当InitKey为Attribute时一定要加该特性不然找不到主键 |
IsIdentity | 是否为自增长 |
ColumnDescription | 列描述 |
Length | 长度,生成表会用到 |
IsNullable | 是否可空,生成表会用到 |
OldColumnName | 修改列名,生成表会用到 |
ColumnDataType | 自定义生成的数据类型,生成表会用到 |
最新文章
- 把字符串添加到HashMap中
- UVALive4287 hdu2767 hdu3836 强连通
- 理解 Android 本地数据存储 API
- linux C连接mysql
- JS IIFE写法
- JavaScript用typeof判断变量是数组还是对象,都返回object
- [记录]CentOS搭建SVN服务器(主从同步)
- ●BZOJ 4453 cys就是要拿英魂!
- 《用Python解决数据结构与算法问题》在线阅读
- @Component注解的解析
- Sublime Text3—常用插件Emmet
- Oracle分页查询排序数据重复问题
- 【jdbcTemplate】baseDao书写规范
- 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
- 第9月第9天 CTFramesetterCreateWithAttributedString
- [转]SSH 原理和基本使用:ssh 安全配置 以及ssh key 认证登录
- HDU 6129 Just do it(杨辉三角)
- “unauthorized: authentication required” -- openshift3.9 docker push 报错
- 对faster rcnn 中rpn层的理解