mybatis 批量进行插入更新,数据库为postgreSQL? 5C

没有发现mybatis的批量更新和插入,用for查询感觉很慢,又需要有这样的需求,
其他数据库查到一些,但是postgre没查到,恳求各位大神稍加指点

3个回答

mybatis里面是有批量插入的,多看看文档

这么会没有批量更新呢?

<update id="updateBatch" parameterType="java.util.List">
    update mydata_table 
    set  status=
    <foreach collection="list" item="item" index="index" 
        separator=" " open="case ID" close="end">
        when #{item.id} then #{item.status}
    </foreach>
    where id in
    <foreach collection="list" index="index" item="item" 
        separator="," open="(" close=")">
        #{item.id,jdbcType=BIGINT}
    </foreach>
 </update>

另外感觉mybatis plus 更好一些:http://mp.baomidou.com/

这个是mybatis整合mysql数据库的批量操作 https://blog.csdn.net/HXNLYW/article/details/80266030
是自己开发过程中整理的,postgreSQL数据库应该是类似的,可以试下

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mybatis批处理(批量查询,更新,插入)
mybatis批量查询 mapper.java List&lt;UBaseMenu&gt; findMenuName(List&lt;String&gt; valueList); mapper.xml &lt;select id="findMenuName" resultType="java.lang.String" parameterType="java.util...
postgresql的更新,插入问题
我在用vb6连接到远端的postgresql8.1的数据库上,对表进行插入,更新的时候报错(错误:multiple-step operation generated errors.check each status value),但是可以从表中读取数据。以下是主要的代码:rncnn.ConnectionString = "Provider=PostgreSQL OLE DB Provider;Data Source=192.168.1.166;Location=betimescontact;User ID=postgres;Password=123456;"rn cnn.Openrn Set rst = New ADODB.Recordsetrn rst.CursorLocation = adUseClientrn rst.Open " select * from t_test ", cnn, 1, 3, adCmdTextrn rn n = rst.RecordCountrn Dim b As Booleanrn b = rst.Supports(adAddNew)rn Dim c As Booleanrn c = rst.Supports(adUpdate) rn rst.AddNewrn rst.Fields("name").Value = "ajw"rn rst.Fields("password").Value = "123"rn rst.Updatern在执行到“rst.Fields("name").Value = "ajw"”的时候报上面的错误,请教各位高手指点一下,不胜感激!
使用MyBatis进行批量的更新、删除报错
MyBatis 批量更新、删除操作报错,数据库用的是MySQL org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: #42000 ### The error may involve defaultParameterMap ### The error occurred wh
MyBatis批量新增和更新
之前有开发任务一个接口里面有大量的数据新增和更新操作,导致十分缓慢。使用了批量操作之后速度有明显提升,几乎百倍千倍的速度提升。 博主之前统计过,通过普通接口一次数据库插入大概需要200ms,对于大量新增或更新操作的情况,数据库批量操作是十分有必要的。废话不多说,直接上代码。 博主的resultMap如下: &lt;resultMap id="BaseResultMap...
mybatis 批量将list数据插入到数据库
随着业务需要,有时我们需要将数据批量添加到数据库,mybatis提供了将list集合循环添加到数据库的方法。具体实现代码如下: 1、controller层: public Map&amp;lt;String, Object&amp;gt; add(@Valid @RequestBody EnrollReq enrollReq) throws ServiceException { String ...
批量数据的插入更新
insert into 表Brnselect * from 表Arnrn怎么完善下面的语句rn[code=SQL]rnif(exists(select top 1 0 from 表B where 表B.id=@id)) rnbegin rn--存在就更新 rnupdate 表B set .... rnrnend rnelse rnbegin rn--不存在就新增 rninsert into 表B rn.... rnendrn[/code]rn
mybatis 插入或者更新
&amp;lt;insert id=&quot;updateOrInsertPhone2Email&quot; useGeneratedKeys=&quot;true&quot; keyProperty=&quot;id&quot; parameterType=&quot;com.sa.pojo.Phone2Email&quot; &amp;gt; &amp;lt;!-- 查看是否存在memberid,如果存在及更新,否则插入 --&amp;gt; &amp;lt;selectKey k
mybatis插入更新无效
有用过mybatis的么,请教个问题,我的插入,更新返回值为1,但是实际上并没有执行,打印SQL语句也是正确的。rn但查询可以返回结果。搞了半天不知道为啥 。rnMAPPER是用它自带的jar包生成的。rn[code="java"]Goods goods = new Goods();rn Goods goods2;rn goods.setCateId(1);rn goods.setId(1);rn goods.setDescription("我擦,有关键字!");rn GoodsMapper mapper = session.getMapper(GoodsMapper.class);rn int ok1 = mapper.insertSelective(goods);rn System.out.println(ok1);[/code]rn打印信息如下:rn[code="java"]DEBUG 2011-02-25 13:20:03,750 ooo Connection Opened [org.apache.ibatis.logging.log4j.Log4jImpl.debug(Log4jImpl.java:27)] rnDEBUG 2011-02-25 13:20:03,968 ==> Executing: insert into goods ( ID, CATE_ID, DESCRIPTION ) values ( ?, ?, ? ) [org.apache.ibatis.logging.log4j.Log4jImpl.debug(Log4jImpl.java:27)] rnDEBUG 2011-02-25 13:20:03,984 ==> Parameters: 11(Integer), 1(Integer), 我擦,有关键字!(String) [org.apache.ibatis.logging.log4j.Log4jImpl.debug(Log4jImpl.java:27)] rn1[/code]rn这条sql语句在mysql里直接执行是没有问题的。rn
postgresql 实现插入 更新操作
INSERT INTO "sip_data"."sip_ip_2m_data" (time_first,time_last,ip,ip_port,port) VALUES('2019/4/6 15:14:29','2019/4/6 14:59:28','203.190.77.198','203.190.77.198|42560','42560') ...
mybatis批量不存在则插入
批量添加之前判断是否已经存在,foreach separator用UNION ALL。
Postgresql通过查询进行更新
转自:https://bbs.csdn.net/topics/392389383 UPDATE tb1 SET score = COALESCE( b.scorea,0) from tb1 a left join tb2 b on a.ids=b.ida where a.ids = tb1.ids;
mybatis只能进行查找,不能进行删除,插入,更新
mybatis只能进行查找,不能进行删除,插入,更新 ,是不是哪里配置错了? 求各位大神!!~~~rnmybatis.xmlrn[code=XML]rnrnrnrn rnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn[/code]rnUserMapper.xmlrn[code=XML]rnrnrn rn rn select * from u where name = #namern rn rn delete from u where name = #namern rn [/code]rnrnUserMapper.javarn[code=Java]rnpackage mvc.web.controller;rnpublic interface UserMapper rn User selectUser(String name);rn void deleteUser(User user);rnrn[/code]rnUser.javarn[code=Java]package mvc.web.controller;rnrnimport java.io.Serializable;rnrnpublic class User implements Serializable rn private String id;rn private String name;rn rn public User(String id, String name) rn super();rn this.id = id;rn this.name = name;rn rn public String getId() rn return id;rn rn public void setId(String id) rn this.id = id;rn rn public String getName() rn return name;rn rn public void setName(String name) rn this.name = name;rn rn rnrn[/code]rn单元测试 代码rn[code=Java]rnpackage mvc.web.controller;rnrnimport java.io.IOException;rnimport java.io.InputStream;rnrnimport org.apache.ibatis.io.Resources;rnimport org.apache.ibatis.session.SqlSession;rnimport org.apache.ibatis.session.SqlSessionFactory;rnimport org.apache.ibatis.session.SqlSessionFactoryBuilder;rnimport org.junit.Test;rnrnpublic class Test_Mybatis rn @Testrn public void t1()rn String resource = "mvc/web/controller/mybatis.xml";rn InputStream inputStream = null;rn try rn inputStream = Resources.getResourceAsStream(resource);rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);rn SqlSession session = sqlSessionFactory.openSession();rn try rn UserMapper mapper = session.getMapper(UserMapper.class);rn User user = mapper.selectUser("aa");rn System.out.println(user.getId());rn System.out.println(user.getName());rn finally rn session.close();rn rn rn @Testrn public void t2()rn String resource = "mvc/web/controller/mybatis.xml";rn InputStream inputStream = null;rn try rn inputStream = Resources.getResourceAsStream(resource);rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);rn SqlSession session = sqlSessionFactory.openSession();rn try rn UserMapper mapper = session.getMapper(UserMapper.class);rn mapper.deleteUser(new User("aa","aa"));rn rn finally rn session.close();rn rn rnrnrn[/code]
数据库批量查找插入
如下,已有表A,需要根据A填充表B中的c列,怎么填?rn[code=sql]rnCREATE TABLE [dbo].[TA](rn [id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,rn [b] [varchar](50) NULL,rn [c] [varchar](50) NULL)rnrnrnCREATE TABLE [dbo].[TB](rn [id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,rn [b] [varchar](50) NULL,rn [c] [varchar](50) NULL)rn[/code]rn表Arn[img=https://img-bbs.csdn.net/upload/201406/29/1404028482_179965.png][/img]rn表Brn[img=https://img-bbs.csdn.net/upload/201406/29/1404028677_884111.png][/img]rnrn用游标?还是用什么、欢迎指教
测试 批量 插入 数据库
using Dapper; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Linq; using System.Security.Cryptography; using Sy...
Postgresql - SQL - 对表中数据的插入、更新、删除进行跟踪
创建一个trigger,对表中的每一行数据的插入、更新、删除进行跟踪。 我们可以进行对数据的监控,对数据更改的保存,记录对所有数据的更改。 也可以依据trigger,记录到文件或表中,将数据应用到其他的数据库,就完成了逻辑复制。 总之,对表中的数据跟踪,是做这些事情的一个基础。   实验环境: pg 11 beta 3 在数据库中创建一个表,用来记录数据的更改。   -- 存储表名...
如何批量将datable数据插入到PostgreSQL
如何批量将datable数据插入到PostgreSQLrnrn求大神指点
mybatis 的批量操作,查询、更新、插入
mybatis 的批量更新 主要依靠 foreach 标签拼接sql 实现批量操作。第一种方法,拼装成一条sql<update id="batchUpdateRawEventStatus" parameterType="java.util.List">
 update raw_event
 set status = 1
 where id in
 <foreach collection="list
Mybatis插入数据库出错
Mybatis插入一条数据到mysql数据库,结果发现主键重复,后台就崩溃了,有没方法可以判断插入操作可不可执行的?谢谢大家、、、
Postgresql 数据库插入当前时间命令
摘要 此命令适用于远程连接工具如navicat、命令行等使用下面的函数可以获取当前的日期和/或时间∶ Date包含日期(如2017-09-25 15:35:12),TIME只有时间(如 15:35:12),其中precision代表毫秒保留的精度,不选默认为6位CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME (precision)
mybatis 插入数据库中文乱码
property name="url" value="jdbc:mysql://localhost:3306/WarehouseHelpApp?useUnicode=true&amp;characterEncoding=utf8"/>
mybatis更新数据库乱码
页面传值出现乱码 修改方法
PostgreSQL / Mysql 数据库如果不存在则插入,存在则更新
处理数据库中如果不存在则插入,存在则更新: PostgreSQL中 INSERT INTO tableName (列1, 列2,…) VALUES(值1, 值2,…) ON conflict(主键字段) do UPDATE set 列1=值1,列2=值2 … ; Mysql中 INSERT INTO tableName (列1, 列2,…) VALUES(值1, 值2,…) ON DUPL...
利用kettle对postgresql进行批量加载
重点是找到postgresql批量加载的客户端路径,即加载方法psql.exe的路径。一般是在postgresql的bin下,当然前提是已经安装客户端。
数据库的插入和更新问题
大家好,我是一个新手,我用asp+access在做网站,但是遇到了数据库的插入和更新问题,想请高手帮帮忙。大意是我通过条件从第一个表中读出许多条符合条件的记录,同时再把这些记录放到第二个表中,在插入记录的同时要把第二个表先清空再插入。请大家帮帮忙啊,我很急,谢谢了。
数据库插入、更新、删除操作
1.插入数据 (1)为表中的所有的字段插入数据 insert into 表名称 (字段1,字段2,字段3......)vaues(值1,值2,值3......);括号内为根据所创建的字段类型逐一进行插入,逐一在给字符类型数据插入的时候,使用单引号; (2)为表的指定指端插入数据 insert into 表名称 (指定字段1,指定字段2......) values(值1,值2......);
数据库的插入,更新,删除操作
请各位高手给我一个用 C# 操作数据库的插入,更新和删除操作的例子(需要完整代码),只要调试通过,并能实现上述所说功能,就给分
数据库信息插入与更新
double m=Double.parseDouble(jTextField2.getText())-Double.parseDouble(jTextField3.getText());rn jTextField4.setText(String.valueOf(m));rn Connection conn=DBUtil.getConnection();rn Statement stmt=null;rn tryrn stmt=conn.createStatement();rn ResultSet rs=null;rn //ResultSet rs1=null;rn for(int j=0;jrn //商品编号varchar,商品名varchar,商品单价double,商品数量int ,单项价格double,交易日期rn int stock1=st-s2;rn // System.out.println(stock1);rn String sql="insert into salesinfo(id,name,quantity,price,sinprice,date) values('"+jTable1.getValueAt(j, 0)+"','"+jTable1.getValueAt(j, 1)+"','"+s2+"','"+s3+"','"+jTable1.getValueAt(j, 4)+"','"+t1.format(new java.util.Date())+"')";rn String sql1="update table goodsinfo set stock='"+stock1+"'";rnrn [color=#FF0000]stmt.executeUpdate(sql.toString());rn stmt.executeUpdate(sql1.toString());[/color] rn catch (Exception e) rn e.printStackTrace();rn rn为什么这两句有异常,而且还不能插入信息成功啊?各位大虾们帮帮忙啊。
数据库的插入更新语句
目的:实现在数据库插入数据的时候,只对重复的数据进行更新; 实现方式: 1、在表中建立一个唯一索引,主键(已有唯一索引的特性) 2、在插入数据 sql语句:insert into table_name( 列名1,列名2)values(。。。)on duplicate key update 列名=values(值)或者(值) 这样子在出现于 唯一索引的值相同情况下 就会之更新其中的数
mybatis根据传入参数进行更新
最近使用mybatis操作数据库发现,更新时只需要更新某个或某几个字段。 所以可以使用一下方法进行动态更新数据。 update dorm_breakrule_info  trim prefix="set" suffixOverrides=",">   if test="srcId!=null">SRC_ID=#{srcId},if>   if test="srcType!=n
COPY命令:为PostgreSQL批量导入数据
转自:http://blog.sina.com.cn/s/blog_4d45ec960100rxlt.html 任务:将excel表中的数据导入到PostgreSQL数据库的某张表中。 工具:PostgreSQL客户端pgAdmin。 步骤: 1.将excel表格字段,按照postgresql 数据库中表的字段顺序来整理数据,并保存为csv文件。 2.用记事本打开csv文件,另存为U...
数据库的一句话的批量语句插入
之前项目中有个关系表要维护,我是查出来后一条条添加到关系表里面,非常的麻烦。后面就换上了这种简单的批量添加方法。 数据库表 role_right 角色与权限关系表 下面语句的意思是为拥有189权限的所有角色赋予190的权限。 INSERT INTO role_right (SELECT role_id,190 FROM role_right WHERE menu_id=189); ...
有批量的插入数据库效率
我有批量的数据要insert 插入sqlserver,但是每一个insert需要间隔5秒插入。rn那么我是一直打开数据库连接呢还是每一个insert都打开以便数据库连接呢?rn下面做个简单的举例说明,(不要看语法,看思路)rn1.rnforrnrnconn.open;rn执行insert语句rnconn.close;rnrn.....间隔5秒rnrnrn2.rnconn.openrnforrnrnrn 执行insert语句rnrn....间隔5秒rnrnrnconn.close;rnrn因为每个insert要间隔5秒产生,所以请大哥们看看哪一种执行数据库好呢?c#操作。
怎样批量的插入数据库记录
我想向一个表中一次性的插入arraylist中的几十上百条记录,用ADO.NET怎么实现??
关于批量循环插入数据库
order.setGoodsList((String)context.getData("GoodsList")); //GoodsList="B01^学费^1000|B02^书本费^800"rn String GoodsList = order.getGoodsList();rn String[] sourceStrArray = GoodsList.split("\\^|\\|");rn for (int i = 0; i < sourceStrArray.length; i++) rn rn rn List list = Arrays.asList(sourceStrArray); rn我现在把 GoodsList这个字段全部拆开并得到list,我现在想要将其插入数据库,字段名分别为TRANS_GOODSNO,TRANS_GOODSNAME,TRANS_GOODSAMT。因为list中的数据是没有对应的实体类,我想请问怎么批量将这6条数据分别插入这三个字段呢?(ps:TRANS_GOODSNO对应的是B01和B02以此类推)
客户端批量数据插入数据库???
我在客户端里面产生的数据,比如在网格里面有十行的数据,我要把它批量的插入的数据库里面,而不是循环一次一条的插入应该怎么做?rnrn我是有一个想法,把这十行的数据组成一个字符串传给存储过程,在存储过程里面在把他分解成十行数据,也就是在存储过程里面来循环插入,不知道有没有具体的做法,SQL不支持数组,要不然就可以用数组处理了。rnrn不知道各位大哥能不能给我一个比较好的思路
mybatis 一条语句批量保存、更新、删除
批量保存(一条SQL) 批量插入的SQL语句: insert into table_exam (aaa,bbb,ccc) values(xx,xx,xx),(oo,oo,oo) &lt;!-- 批量插入数据 --&gt; &lt;insert id="insertBatch" parameterType="java.util.List" useGeneratedKe...
Mybatis之多种数据类型的批量的更新数据库表
我想实现的效果是:更新cap_fo_order表的订单状态=待审核、时间=当前,更新条件是订单id在(id1,id2,id3等多个)范围中并且(订单状态 = “01” and 订单状态的描述 = “初始化”) 。这也就意味着我必须传递多个不同类型的参数。话不多说,上代码展示: //FoOrderRepository文件批量的更新数据库的表Integer updateMulity(@Param("o
Mybatis批量新增或更新(mysql数据库)
导语: 在开发的时候 ,经常会有这样的情况:我们想向数据库插入一条记录:若数据表中存在以相同主键的记录,我们就更新该条记录。否则就插入一条新的记录。 按照传统的做法: 1. 先查询数据库有没有对应的主键 2. 没有找到主键则新增,找到主键则修改 但是这样写有两个问题 效率太差,每次执行都要执行2个sql 高并发的情况下数据会出问题,不能保证原子性 还好MySQ...
Mybatis中的批量增加和批量删除,查询和更新
批量增加实例 &lt;insert id="addRoleContent" parameterType="java.util.List"&gt; &lt;foreach collection="List" open="begin" close=";end;" item="item" separator=";"&gt; INSERT INTO YIBO_SYS_CONTENT_ROLE (R...
mybatis批量新增,存在就更新(mysql数据库)
只需要把要批量新增的实体类放到集合中,作为参数传给dao, 最关键就是Mapper文件中,直接上代码:   insert into counterparty()   values      (   #{counterParty.id,jdbcType=VARCHAR},   #{counterParty.fullName,jdbcType=VARCHAR},   #{coun
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法

相似问题