随笔分类 -  最佳实践

Java 异常: SimpleDateFormat java.lang.NumberFormatException: multiple points
摘要:Java SimpleDateFormat 是不支持多线程的。在不同线程同时用 一个 SimpleDateFormat 实例对象做日期装换,或抛出上面的 2 种 异常,所以 用到 SimpleDateFormat 就直接new 一个新的吧。 a 解释:SimpleDateFormat 里面吧转化的时 阅读全文

posted @ 2019-04-16 11:25 zhangyukun 阅读(258) 评论(0) 推荐(0)

mysql异常 : The driver has not received any packets from the server.
摘要:异常: 结论:域名写错了或报这个异常 阅读全文

posted @ 2019-04-16 09:54 zhangyukun 阅读(1492) 评论(0) 推荐(0)

mysql 视图 安全性( mysql 表能读,但是视图不能读问题 )
摘要:安全性: 有两个选项 Definer:定义者 , 定义者有什么权限 ,访问视图的人就有什么权限 Invoker: 调用者 ,根据调用这个视图的当前用户来决定 有什么权限 采坑: 项目中有个复杂查询。1050 多行格式化后的视图sql。创建视图默认的安全性是 Definer ,也就是定义者有什么权限, 阅读全文

posted @ 2019-04-15 11:10 zhangyukun 阅读(601) 评论(0) 推荐(0)

关于mysql 的 autoCommit 参数
摘要:首先描述一下这个参数的作用。 这个参数 默认是开启的。 开启以后再命令敲的sql 会自动提交。如果关闭,就必须手动 commit。 查看 这个 自动提交状态。 SELECT @@autocommit; 零时修改这个素心 set @@autocimmit = 1; 全局修改:可以改 mysql.cnf 阅读全文

posted @ 2019-04-12 14:00 zhangyukun 阅读(1014) 评论(0) 推荐(0)

@Transactional 可以写在 Controller 方法上面了
摘要:上图 t1 掉用的service 没定义事物环境,但是 在 t1 上面定义了。 依旧可以 在 参数是5 的 时候 ,让 前面的操作级联回滚。 但是 我不建议这么用,除非特殊需求,正常来说事物根据在满足一致性的前提下,尽量避免长事物。 阅读全文

posted @ 2019-04-12 10:35 zhangyukun 阅读(4163) 评论(0) 推荐(0)

微信 支付宝 同时支付一个订单的解决方案
摘要:举个例子: 我们的应用同时的接入了支付宝和微信。有 2 种 或者更多的三方支付方式。这时候有一个很明显的问题, 一个订单 如果同时 使用微信支付 和 支付宝支付 就会支付两次( 同时的 意思是指,支付宝支付以后,在异步通知没有回来的时候 ,客户端有使用微信支付了一次 )。 这种情况我们能怎么办呢? 阅读全文

posted @ 2019-04-02 17:37 zhangyukun 阅读(2283) 评论(0) 推荐(0)

Illegalmixofcollations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)foroperation '= 连表查询排序规则问题
摘要:两张 表 关联 ,如果 join的字段 排序规则 不一样就会出这个问题 。 解决办法 ,统一 排序规则。 在说说区别,utf8mb4_general_ci 更加快,但是在遇到某些特殊语言或者字符集,排序结果可能不一致, utf8mb4_unicode_ci 更加精确。一般来说我们 更加关注 排序方式 阅读全文

posted @ 2019-04-01 16:16 zhangyukun 阅读(207) 评论(0) 推荐(0)

Transaction rolled back because it has been marked as rollback-only 原因 和解决方案
摘要:产生原因 , 1 serviceA 调用 serviceB 然后 B 抛出异常 ,B 所在的 事物 回滚,B 把当前可写 事物标记成 只读事物 , 2 如果 A 和B 是在 同一个事物环境,并且 A 抓了 B 抛出的异常,没有和 B 一起回滚, 3 然后 A 方法 完成,把当前事物 当成 写事物提交 阅读全文

posted @ 2019-03-27 17:38 zhangyukun 阅读(3898) 评论(0) 推荐(0)

RabbitMQ 死信队列 延时
摘要:上述 ,配了 死信队列,如果 如果 发送到 死信里面的消息 如果 超时,就会被转交给 对应的 正常队列。 死信 的这个特点可以做延时消息。 阅读全文

posted @ 2019-03-27 14:37 zhangyukun 阅读(239) 评论(0) 推荐(0)

基于redis的 分布式锁 Java实现
摘要:package com.rynk.mugua.trading.biz.commons.lock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.R 阅读全文

posted @ 2019-03-26 10:31 zhangyukun 阅读(150) 评论(0) 推荐(0)

前端枚举 翻译问题 统一解决方案
摘要:如果 给前端这个样一个枚举 : 一般来说前端都很疑惑。 不知道 这个枚举 应该显示怎么中文字。 统一解决。 第一 规范枚举 字段名,比如 订单 状态。 枚举 叫做 OrderStatus,name 字段名字 一定就要叫做 orderStatus ( 便于 前端知道是哪个枚举 ) 第二 提供 一个 M 阅读全文

posted @ 2019-03-20 20:18 zhangyukun 阅读(862) 评论(0) 推荐(0)

mysql 不允许分组的问题 this is incompatible with sql_mode=only_full_group_by
摘要:异常信息:this is incompatible with sql_mode=only_full_group_by 解决办法: 找到 my.cnf find / -name my.cnf 然后在后面加上 : 备注:如果是这查询数据量小可以这么用,但事实如果数据量很大,这种操作是禁止的,出现这个问题 阅读全文

posted @ 2019-01-16 16:00 zhangyukun 阅读(485) 评论(0) 推荐(0)

Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
摘要:原因是mysql 默认允许的 数据报包 是 1M 设置大一些就可以了 centos 下面 /ect/my.cnf 文件里面 加入或者修改 下面的参数 [mysqld] max_allowed_packet=20M 这个可以查询 允许的最大数据报包 SHOW VARIABLES LIKE '%max_ 阅读全文

posted @ 2018-08-08 16:51 zhangyukun 阅读(126) 评论(0) 推荐(0)

一个效率比较高红包算法
摘要:提供一个红包算法,随手写的,还有很多需要优化的地方,但是效率比较高, 测试效率:一百万次 ,20 个红包的 需要 1.3 秒左右 一百万次 ,100 个红包的 需要 6.3 秒左右 代码实现: 百万次 ,20 个的 红包 。 1.3 秒 百万次 100 个的 红包 6.3 秒 百万次 10 个 红包 阅读全文

posted @ 2018-07-13 15:36 zhangyukun 阅读(285) 评论(0) 推荐(0)

导航