添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

2)java端与mysql表编码不一致:

1.修改Server端编码。修改character_set_xxx

2.在JDBC-URL连接后面加上&useUnicode=true&characterEncoding=UTF8

3.修改my.ini文件
去掉sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"中的STRICT_TRANS_TABLES

3)mysql采用非"utf-8"编码

STRICT_TRANS_TABLES 是 MySQL 数据库中的一个 SQL 模式,用于控制事务提交时对数据完整性和类型检查的严格程度。

STRICT_TRANS_TABLES 模式下,如果 INSERT 或 UPDATE 操作执行时发现数据类型不匹配或值超出了列的范围,MySQL 就会拒绝这些操作并抛出错误,从而保证了数据的完整性和一致性。

具体来说, STRICT_TRANS_TABLES 模式将执行以下校验:

  • 发生截断警告:如果插入的字符串长度超过了定义的列长度,MySQL 会截断该字符串并向客户端发送一个警告。
  • 严格的类型检查:如果插入的值与表定义的列类型不匹配,MySQL 将拒绝该操作并返回错误。
  • 零值插入:在 NOT NULL 列上进行零值插入时,MySQL 将拒绝该操作并返回错误。
  • 在默认的 SQL 模式下,MySQL 只会在发生截断时向客户端发送警告,而不会阻止插入或更新操作。因此,开启 STRICT_TRANS_TABLES 模式可以更加严格地控制数据库的数据完整性,但也可能会限制某些数据操作。

    需要注意的是,对于早期版本的 MySQL, STRICT_TRANS_TABLES 模式可能会影响性能。因此,在大多数情况下,建议选择较新的 MySQL 版本并开启该模式以提高数据完整性。


    ————————————————
    版权声明:本文为CSDN博主「myds1991」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/myds1991/article/details/42881629

    EMBED THE SNIPPET BELOW IN YOUR SITE