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

最便宜做个网站多少钱wordpress 图标 png

最便宜做个网站多少钱,wordpress 图标 png,关键词优化最好的方法,火车头wordpress小说1 引言 最近接手了一个已离职同事的java项目#xff0c;这个项目中原来使用了自己的mysql驱动版本#xff0c;并未使用公司公共依赖中的版本号。我想为了统一版本号#xff0c;就将当前项目中pom文件中mysql的版本号verson给去除了。没怎么自测#xff0c;就直接发到测试环…1 引言 最近接手了一个已离职同事的java项目这个项目中原来使用了自己的mysql驱动版本并未使用公司公共依赖中的版本号。我想为了统一版本号就将当前项目中pom文件中mysql的版本号verson给去除了。没怎么自测就直接发到测试环境了结果没多久就有测试人员告诉了说有接口报错。 其主逻辑sql如下 SELECT * FROM rule_category where name企业资质 and parent_id0;后面发现不止这个接口查询结果为空其他好几个接口的查询结果都未空。我用同样的sql语句在navicat中能查出结果我开始怀疑我是不是连错数据库了是不是连接到开发环境中的数据库。我使用Environment#getProperty(spring.datasource.url)获取到的数据库url可以确定是测试环境。后面进一步发现这些接口中都有中文查询条件我开始怀疑是字符集的问题。回到刚才的数据库连接URL,其格式是jdbc:mysql://xxhost:3306/rule_engine?serverTimezoneGMT%2B8 ,这个URL明显没有指定字符集编码我在这个url上加上characterEncodingUTF8参数本地重新启动项目在swagger中调用接口最终预期数据正常返回。 现在问题是解决了大致应该是不同版本的数据库驱动其默认字符集编码不同。这个项目的原始数据库驱动版本是8.0.32 ,而我修改后继承了父依赖的版本号8.0.21。 先看mysql-connector 8.0.32 com.mysql.cj.NativeCharsetSettings#NativeCharsetSettings 是mysql驱动 8.0.32 中的一个字符集配置相关的类 上面的characterEncoding字段的description的大致意思是在未主动配字符集编码时8.0.25及以下版本的数据库驱动会使用mysql服务器的默认编码而在8.0.26及以上版本的数据库驱动会使用utf8mb4 。 8.0.23的mysql驱动在建立socket连接之前会调用com.mysql.cj.NativeCharsetSettings#configurePreHandshake方法 sessionCollationIndex为null,先给它赋值为utf8mb4_0900_ai_ci字符集对应的index,在然后根据数据库服务器版本号重新进一步赋值我们公司数据库的版本5.7.39,此版本号小于下图中的8.0.1会被赋值为 utf8mb4_general_ci对应的index。所以可以看出8.0.23版本的mysql驱动的默认字符集编码是utfmb8 再看下面的connectionCollation的说明这个属性是字符排序规则这里还提到了字符编码。如果connectionCollation是latin1_swedish_ci,那么mysql的字符集就是latin1 而映射到java语言就是windows-1252字符集如果characterEncoding没有被设置那么就会使用windows-1252字符集。这里最后几句话再次说明了:characterEncoding没有被主动设置时在8.0.25以下版本使用数据库server端的默认字符编码而在8.0.26及以上版本直接使用utf8mb4编码。 再看mysql-connector 8.0.21 类似地此版本的驱动在建立正式的socket连接之前会调用com.mysql.cj.NativeCharsetSettings#configurePreHandshake方法 configurePreHandshake又会调用 readServerCapabilities方法readServerCapabilities方法就是解析mysql server返回的第一数据报文这个数据报文中包含了mysql server的通信协议版本、数据库版、默认字符集等信息。readServerCapabilities方法 的核心的逻辑在serverCapabilities.setInitialHandshakePacket(buf)这行代码 从下图可以看出 mysql server的默认字符集编码是latin1对应的java字符集是windows-1252 为了验证mysql server的默认字符集是否是latin1, 可以在navicat执行一个这个SQL脚本 show VARIABLES like %set_database;下图显示其字符集编码果然是latin1 而数据库的表字段rule_category.name是utf8mb4,在8.0.21版本的驱动使用mysql server默认的latin1编码去查询utf8mb4编码的 name字段当然会导致条件不匹配查询结果为空
http://www.pierceye.com/news/372616/

相关文章:

  • 电子书网站 跟我学做家常菜800网站建设与维护 教学大纲
  • 河南省住房城乡建设主管部门网站wordpress还有人在用吗
  • 好口碑关键词优化沈阳企业关键词优化
  • 外汇自动跟单网站开发wordpress支持中文
  • 南宁网站建设推广教育类网站框架
  • 定制网站建设服务公司摄影设计师招聘
  • 地图 添加到网站观点网站
  • 给分管领导网站建设情况汇报怎么写企业网站的发展历史
  • 佛山营销网站建设费用app制作器下载软件
  • 如何将优酷视频上传到自己网站万能网
  • 域名销售网站wordpress 数据库配置文件
  • 广州营销型网站建设怎么样做网站必须要认证吗
  • 网站开发主要内容免费商城平台
  • 青岛建站方案海兴县网站建设公司
  • 网站文案框架兰州网页制作公司网站
  • 专业网站有哪些平台wordpress那个版本
  • 网站建设按钮详情页设计图
  • 杭州公司注册代理中介深圳关键词优化软件
  • 乐清网站制作公司电话免费做初中试卷的网站
  • 注册一个网站的流程反向代理服务器做wordpress外网
  • 沁阳网站建设tomcat建网站
  • 品牌网站建设公司推荐网站建设公司3lue
  • 装修公司网站模版徐州品牌网站建设
  • 医疗网站建设计划书一级消防工程师考试科目
  • 信誉好的网站建设公司网站关停公告怎么做
  • 画图在什么网站上做兼职广告词
  • 昆明购物网站建设企业网络设计方案预算
  • 浙江省建设工程质监站网站什么是营销型网站建设
  • 做网站需要云数据库吗企业做网页还是网站
  • wordpress手机网站插件wordpress编辑器添加按钮弹出窗口