mybaits 如果数据库中有这条数据就修改,如果没有就新增

有的时候会接到这样的需求:如果数据库中有这条数据就修改,如果没有就修改。

在之前接到这个需求,首先思路是:先到数据查询有没有这条数据,有的话就走修改,没有的话就走新增。

之后找到了这种解决方案:贴出来分享一下

merge into table p
using (select ‘${column}‘ columnfrom dual) d

on  (d.column= p.column)

when matched then update 语句

when not matched then insert 语句

意思就是,根据唯一标识字段查询数据库是否有这条数据,如果匹配的话就做更新操作,如果不匹配的话就做新增操作。

时间: 2024-10-22 13:28:31

mybaits 如果数据库中有这条数据就修改,如果没有就新增的相关文章

向Oracle数据库插入一条数据

这几天搞了一下Oracle数据库,可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 ,既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来.不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲突了,唯一的 'Cms', 'Cms 网站', 'Cms', 2 , 'CMS', '广告内容管理系统' ,

插入数据库 每次1000条数据

$sql = "insert into `elconlist` (`ecgrouid`,`elcono`) VALUES"; for($i = 0; $i < $ecnum; $i++){ //拼装SQL if($i != $ecnum-1){ if((float)($i+1)%1000 != 0){ $sql .= "(".$ecgrouid.",'".$this->creatElcono($comid)."'),&quo

java向数据库插入N条数据

为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class InsertData { public Con

优化SQLite3数据库插入1000条数据

如果用普通的方式向数据库中插入10000条数据,会不会妨碍用户体验呢?答案是肯定会,那么如何优化我们的数据库的各种操作呢. (1)使用事务. String sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)"; SQLiteStatement stat = db.compileStatement(sql); db.beginTransaction(); for (S

Android数据库更新&mdash;&mdash;上万条数据的插入

在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚至可能造成整个应用的崩溃! 解决方案: 遇到这种情况,其解决方案应为,用做好的db文件替换之前的数据库文件.当然,有人可能有疑问,这样的话,怎么写入到data/data目录下.这个的确是个问题,可是,我们可以将该数据库存放在SD卡目录下.当然,数据库存放在SD卡目录中,的确是对安全性的妥协. 实现步

往数据库插入上万条数据避免服务器崩溃

<?php //mysql执行时间 ini_set('max_execution_time', '0'); ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort //链接数据库:链接的服务器,拥有服务器进程的用户的名称,密码 $con[email protected]mysql_connect("localhost","root","root"); // 判断数据库是否连接 if(!$con){

如何在mysql数据库生成百万条数据来测试页面加载速度

1.首先复制一条sql 在复制前,需要确定该记录是否有主键 若无,则代码非常简单, insert into gl_energy_meter_data SELECT * from gl_energy_meter_data where dosage="12432"; 复制的表名↑                                              粘贴的表名↑                        ↑ 某个字段的值最好唯一 若有主键,一般是ID,则需要随机生成

随机获得MySQL数据库中100条数据方法 驾照题库项目 MVC架构 biz业务层的实现类 根据考试类型rand或order通过dao数据访问层接口得到数据库中100或全部数据

package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Random; import com.google.gson.Gson; import com.swift.jztk.bean.Result

sqlite数据库中第一条数据查不出来!

/** *  * Title: selectAllPhone  *Description:查询所有的Phone对象  * @return  * @see * com.sms.ntlm.dao.PhoneDao#selectAllPhone() */ @SuppressLint("SimpleDateFormat") @SuppressWarnings("deprecation") @Override public List<Phone> selectAl