主键存在时又insert转为update某个关键字段,示例如下,注意,如果这条数据曾经不存在,此时执行insert返回条目是1,如果已存在,执行update返回条目是2!!!<insert id="insert" parameterType="com.htsec.kcmimMonitor.model.MoSchedualLock"> insert into mo_XXXX_lock ( sch_id, lock_state, create_time, m…
在使用mybatis做持久层时,insert.update.delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数: 那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取. 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.DB2,可以采用如下配置方式: <insert id="save" parameterType="user"> <selectKey res…
MyBatis简单增删改查操作,此处所做操作,皆是在之前创建的MyBatis的Hello world的工程基础上所做操作. 首先在接口文件(personMapper.java)中,添加操作方法: package com.Aiden.dao; import java.util.List; import com.Aiden.domain.Person; public interface personMapper { /** * 添加人员 * @param person */ public void…
insert,返回值是:新插入行的主键(primary key):需要包含<selectKey>语句,才会返回主键,否则返回值为null. <insert id="insertUser" parameterClass="ibatis.User"> insert into user (name,password) values (#name#,#password#) <selectKey resultClass="long&qu…
上文mybatis源码简书我们讲到sqlsession中通过executor来执行sql,我们接着往下看 update方法点进去,我们进到baseexecutor 这里我们看到 clearLocalCache 方法,可见每次更新都会清除缓存 我们再看到doUpdate public int doUpdate(MappedStatement ms, Object parameter) throws SQLException { Statement stmt = null; try { Config…
select 查询数据(大部分) 在网站应用中进行数据显示查询操作 insert 插入数据 在网站应用中进行用户注册添加等操作 delete 删除数据 后台管理里面删除文章删除用户等操作 update 更新数据 数据同步缓存等操作 通过以上查询方式与网站应用的关系,可以由注入点产生地方或应用猜测到对方的SQL查询方式 注意:扫描工具一般不能扫描到insert,updata,delete命令的注入点,因为交互过程复杂,涉及到用户登录状态,用户行为交互等方面,这就需要手工测试了 模拟网站环境执行SQ…
mysql 批量更新记录 MySql中4种批量更新的方法最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用. mysql 批量更新共有以下四种办法 1.将一个表的字段更新到另一个表中: create temporary table tmp(id int(4) primary key,dr varchar(50));insert into tmp values (0,'gone'), (1,'xx'),...(m,'yy'); u…
上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介绍mapper映射文件的配置, 这是mybatis的核心之一,一定要学好.在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, delete, cache, cache-ref, resultMap, sql . 本篇文章将简单介绍 in…
原文链接:http://www.jb51.net/article/47090.htm   今天听同事介绍oracle到mysql的数据migration,他用了Insert into ..... on duplicate key update ...,我当时就想怎么不用Replace呢,于是回来就仔细查了下,它们果然还是有区别的     看下面的例子吧: 1 Replace into ... 1.1 录入原始数据 mysql> use test; Database changed mysql>…
Attribute "resultType" must be declared for element type "insert"或"update" insert报错 这个报错日志中说Attribute "resultType" must be declared for element type "insert",还有一个报错信息是Attribute "resultType" must…