Db.find数据不一致

同一个方法  同一个参数  有时候结果为null  下面是代码和建表语句  请指教

CREATE TABLE `p_user` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `nickName` varchar(32) NOT NULL DEFAULT '' COMMENT '用户昵称',
  `avatar` varchar(255) DEFAULT NULL COMMENT '头像地址',
  `phone` varchar(32) DEFAULT '' COMMENT '用户手机号(并没有实际用处)',
  `realName` varchar(32) DEFAULT '' COMMENT '用户真实姓名',
  `state` tinyint(3) NOT NULL DEFAULT 0 COMMENT '0为可用 1为禁用',
  `privacy` tinyint(3) NOT NULL DEFAULT 0 COMMENT '是否展示电话号码,0是;1否',
  `introduce` varchar(255) DEFAULT NULL COMMENT '签名(一句话简介)',
  `sex` varchar(10) DEFAULT NULL COMMENT '性别(微信绑定信息)',
  `province` varchar(100) DEFAULT NULL COMMENT '省份(微信绑定信息)',
  `city` varchar(100) DEFAULT NULL COMMENT '城市(微信绑定信息)',
  `country` varchar(100) DEFAULT NULL COMMENT '国家(微信绑定信息)',
  `address` varchar(255) DEFAULT NULL COMMENT '地址',
  `createdAt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
  `lastUdateTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '上次修改时间',
  `user_total_assets` double(9,2) DEFAULT 0.00 COMMENT '用户总资产',
  `user_property` double(9,2) NOT NULL DEFAULT 0.00 COMMENT '用户可提现资产',
  `generalize_money` double(9,2) NOT NULL DEFAULT 0.00 COMMENT '推广店铺总收入',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='前台用户表';


CREATE TABLE `shop` (
  `Id` int(11) NOT NULL,
  `shopName` varchar(255) NOT NULL DEFAULT '' COMMENT '店铺名称',
  `shopNum` int(11) NOT NULL DEFAULT 0 COMMENT '成交数量',
  `userId` varchar(20) DEFAULT '' COMMENT '用户ID',
  `dredgeTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '开通时间',
  `money` varchar(10) DEFAULT '' COMMENT '充值金额',
  `dredgeMoney` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '第一次充值时间',
  `shopType` int(2) NOT NULL DEFAULT 0 COMMENT '0代表屌丝 1代表白富美',
  `auth` varchar(2) NOT NULL DEFAULT '1' COMMENT '是否认证 (0:认证了  1:未认证)',
  `shopPhoto` varchar(255) DEFAULT NULL COMMENT '店铺头像',
  `shopDescribe` varchar(255) DEFAULT NULL COMMENT '店铺描述',
  `expirationTime` date NOT NULL DEFAULT '0000-00-00' COMMENT '到期时间',
  `attention` int(10) NOT NULL DEFAULT 0 COMMENT '关注量',
  `fans` int(11) NOT NULL DEFAULT 0 COMMENT '粉丝量',
  PRIMARY KEY (`Id`),
  UNIQUE KEY `shop_shopNum` (`shopNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='店铺表';

image.png

评论区

JFinal

2018-06-26 10:36

从表面上看,只能认为是 id 这个参数有所不同,我建议你直接单步调试一下,看这个 id 值在两种返回值的情况下到底是什么值

不家一个简单办法,将 id 值输出到控制台,看变化

无无无

2018-06-26 17:08

@JFinal 我试了 相同的值 我执行100次 ID都取到了 结果差不多有50次会出现空 50 次正常返回值 我写一个for循环 执行的 值没有改变

JFinal

2018-06-26 21:34

@无无无 你将这个 sql 放在 mysql 控制台执行一下试试, jfinal 仅仅是转调了一下 JDBC 来执行 sql 语句,这个问题太奇怪了

此外,换下数据源中间件试试,例如换成 druid 高版本

无无无

2018-06-27 09:13

@JFinal 我有把这个sq语句放到 可视化工具里试了 没有问题 所以才很奇怪

JFinal

2018-06-27 09:32

@无无无 换 JDBC 驱动以及数据源中间件,我怀疑是这两个东东的问题

无无无

2018-06-27 11:06

@JFinal 不好意思 波总 是因为数据库在存储时 有个服务器宕机了 所以数据没存到另一个数据库 导致数据 有时有 有时没有

JFinal

2018-06-28 10:17

@无无无 解决就好

热门反馈

扫码入社