存储过程与编码

MySQL 存储过程中, 表和数据的编码与数据库和存储过程默认的编码不同则可能出现 sql 不会使用索引的情况, 因为 MySQL 会对条件列的数据做相应的编码转换, 比如以下, 表数据为 latin1, MySQL 解析器会做一些转换:

... WHERE namecolumn = NAME_CONST('in_namecolumn',_utf8'MP201022' COLLATE 'utf8_general_ci')
... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci

通过 jdbc 连接执行 sql 的时候, 如果编码不一致, 同样需要对 varchar, char 类型进行转换, 如下所示:

... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci
SQL state [HY000]: error code [1267]: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='

在 mysql-connector-java 配置中, useSSL 参数有以下不同, 从 5.1.38 开始 useSSL 开始按 MySQL 5.5.45+, 5.6.26+ or 5.7.6+ 的版本默认开启, 对应的 requireSSL, verifyServerCertificate 两个参数也会跟着开启:

< 5.1.38: ConnectionProperties.useSSL=Use SSL when communicating with the server (true/false), defaults to 'false'>= 5.1.38 ConnectionProperties.useSSL=Use SSL when communicating with the server (true/false), default is 'true' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is 'false'

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  3. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  4. Android(安卓)10 定位问题,获取NMEA(支持5.0~10.0)
  5. mybatisplus的坑 insert标签insert into select无参数问题的解决
  6. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  7. Android软键盘适配问题
  8. SlidingMenu和ActionBarSherlock结合做出出色的App布局,Facebook
  9. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0

随机推荐

  1. Azure DevTest Lab体验(一)简介及部署
  2. 我是如何拿到蚂蚁金服 offer ?
  3. Java 8 日期/时间 API
  4. 链路追踪 SkyWalking 源码分析 —— Coll
  5. 分布式链路追踪 SkyWalking 源码分析 —
  6. android 视频播放---------利用android原
  7. 影响RPA云部署总持成本的7大因素
  8. shell脚本之灵活调用函数技巧
  9. 分布式链路追踪 SkyWalking 源码分析 —
  10. 给用户一个否减弱动画效果的选择[每日前