事情大概是这样的:

某个时刻之后所有的交易都崩溃了,查看数据库得知所有的数据都变成一样的了!!!

再查看log,发现执行了这样的语句:UPDATE XXX SET c1=v1,c2=v2 ...,没有where条件!!!

这里不用去说怎样的错误导致了该结局,就说一下需要怎样预防吧:

任何时候,必须在调用DAO之前加一段代码来验证条件的真假!以防止条件不存在的情况!!!

关于使用mybatis的一个惨痛教训的更多相关文章

  1. 使用MyBatis搭建一个访问mysql数据库的简单示例

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  2. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  3. 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction

    今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...

  4. android socket编程用Bufferreader读取的一个失败教训

    由于我的手机需要用笔记本开的wifi,躺在床上玩手机时需要关电脑或者是要让电脑放歌的时候总是不想下床,于是我想能不能用一个APP,然后通过局域网实现在手机上对电脑进行操控呢?说干就干. 我在电脑上用的 ...

  5. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的拼接和组装.可以简单的说成Mybatis中可以动态去的判断需不需要某些 ...

  6. 基于Mybatis实现一个查库的接口

    基本功能就是写一个接口,该接口的主要功能是根据给的条件查询特定表: 先通过Workbench来看一下在给定条件下的查询的结果,先给出最终的结果查询的表以及查询的条件: 也就是该接口实现在image_t ...

  7. mybatis 获得一个map的返回集合

    在使用mybatis 查询结果集,有时会有需求返回一个map比如表 id username 1  name1 2 name2 3 name3 希望的查询结果是一个map 并且以id为key  表为实体 ...

  8. java+mybatis实现一个简单的银行系统,实现存取款与账户查询

    先创建数据库和表,使用的是MySQL数据库. create database mybatis; use mybatis; CREATE TABLE `accountdo` ( `id` varchar ...

  9. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

随机推荐

  1. FFmpeg(4)-使用avformat_find_stream_info()来探测获取封装格式的上下文信息

    /** * Read packets of a media file to get stream information. This * is useful for file formats with ...

  2. lua -- 清理数组

    function UIBagController:ClearGoods( ) ,#self.itemArr do print("=======ClearGoods======" . ...

  3. Gartner:2018人工智能技术成熟度曲线

    https://www.secrss.com/articles/4392 人工智能被广为关注,但是一些想法恐难达到预期.本成熟度曲线将追踪AI基本趋势和未来创新,以确定人工智能技术发展的范围.状态.价 ...

  4. 手动分析linux是否中毒的几个考虑点

    linux服务器在不允许安装任何杀毒软件的时候,手动分析有没有中病毒可以从以下几个特征点来考虑. 特征一:查看系统里会产生多余的不明的用户cat /etc/passwd 特征二:查看开机是否启动一些不 ...

  5. sessionStorage 、localStorage、cookie

     特性  cookie  localStorage  sessionStorage  存储  浏览器端,同源限制   浏览器端,同源限制    浏览器端,同源限制    容量   <=4K  5 ...

  6. svn 版本管理与自动部分发布

    作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些 ...

  7. 6. 集成学习(Ensemble Learning)算法比较

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  8. iOS 设置导航栏全透明

    - (void)viewWillAppear:(BOOL)animated{ //设置导航栏背景图片为一个空的image,这样就透明了 [self.navigationController.navig ...

  9. Android 收集已发布程序的崩溃信息

    我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃.不过理想是丰满的,现实是骨感的.没有一个程序员能保证自己写的程序绝对不会出现异常崩溃.特别是针对用户数达到几十 ...

  10. [转]Oracle的update语句优化研究

    原文地址:http://blog.csdn.net/u011721927/article/details/39228001 一.         update语句的语法与原理 1.     语法 单表 ...