精华内容
下载资源
问答
  • 使用方法请看博客 https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827
  • 使用Spring做更新操作或者批量更新插入有很多方法,下面说说我用到的一些方法,之后再慢慢补充吧。 1、使用JdbcTemplate做基本的更新插入操作 @Service(“commonInfo”) public class CommonInfo { @Autowired ...

    使用Spring做更新操作或者批量更新插入有很多方法,下面说说我用到的一些方法,之后再慢慢补充吧。
    1、使用JdbcTemplate做基本的更新插入操作
    @Service(“commonInfo”)
    public class CommonInfo {

    @Autowired
    private JdbcTemplate mysqlSearchJdbc;
    
    public void setCycleTime(String field,String time){
        try {
    
           String sql = "update table_name set "+ field + "= ? WHERE id=1";
           int temp = mysqlSearchJdbc.update(sql,time);
            if(temp > 0){
                System.out.println(field+"更新成功!");
            }else {
                System.out.println(field+"更新失败!");
    
            }
    
        }catch (Exception e){
            e.printStackTrace();
            System.err.println("历史时间更新失败");
        }
    }
    

    }

    2、批量插入操作

    public void findCartSkuInfo(){
    
        List<Map<String, Object>> skuList = null;
        try{
            String field = "cartJob";
            String[] updateTime =commonInfo.getCycleTime(field);
            skuList = this.mysqlCartJdbc.queryForList(globalProperties.getSqlCartJob(),updateTime);
            //获得的数据插入到数据库中
            if(skuList != null && skuList.size() > 0){
    
                final List<Map<String, Object>> list = skuList;
    
                String insertSql = "insert into table_name (shopId,openId,behaviorFlag,behaviorTime) values (?,?,?,?)";
                mysqlSearchJdbc.batchUpdate(insertSql, new BatchPreparedStatementSetter() {
                    @Override
                    public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
                        String shopId = String.valueOf(list.get(i).get("sku"));
                        String open_id = String.valueOf(list.get(i).get("open_id"));
                        String create_time = String.valueOf(list.get(i).get("create_time"));
                        preparedStatement.setString(1,shopId);
                        preparedStatement.setString(2,open_id);
                        preparedStatement.setInt(3,4);
                        preparedStatement.setString(4,create_time);
                    }
    
                    @Override
                    public int getBatchSize() {
                        return list.size();
                    }
                });
    
            }
        }catch (Exception e){
            e.printStackTrace();
    
        }
    }
    
    展开全文
  • 3. 数据更新插入mysql数据库中 import pymysql db = pymysql.connect(host='localhost',user='root', password='123456', port=3306, db='spiders') data = { 'id': '20180606', 'name': 'Lily', 'age': 25 } ...

    1. 连接mysql

    import pymysql
    db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spiders')
    cursor = db.cursor()
    sql = 'select * from students;'
    cursor.execute(sql)
    cursor.close()
    db.close()
    

    2. 多字段动态插入mysql数据库中

    import pymysql
    db = pymysql.connect(host='localhost',user='root', password='123456', port=3306, db='spiders')
    data = {
        'id': '20180606',
        'name': 'Lily',
        'age': 20
    }
    table = 'students'
    keys = ', '.join(data.keys())
    values = ', '.join(['%s'] * len(data))
    sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
    try:
       cursor.execute(sql, tuple(data.values()))
       print('Successful')
       db.commit()
    except:
       print('Failed')
       db.rollback()
    cursor.close()
    db.close()
    

    3. 数据更新插入mysql数据库中

    import pymysql
    db = pymysql.connect(host='localhost',user='root', password='123456', port=3306, db='spiders')
    data = {
        'id': '20180606',
        'name': 'Lily',
        'age': 25
    }
    table = 'students'
    keys = ', '.join(data.keys())
    values = ', '.join(['%s'] * len(data))
    sql = 'INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE'.format(table=table, keys=keys, values=values)
    update = ','.join([" {key} = %s".format(key=key) for key in data])
    sql += update
    try:
       cursor.execute(sql, tuple(data.values())*2)
       print('Successful')
       db.commit()
    except:
       print('Failed')
       db.rollback()
    cursor.close()
    db.close()
    
    
    展开全文
  • oracle使用 merge 更新插入数据(总结)
  • mysql插入更新

    千次阅读 2019-08-08 17:43:09
    1. 数据插入更新,既可以在java业务层进行,也可以在mysql数据库层处理。 2.业务层一般做法是先查询,如果不存在在插入,如果存在则更新,但是查询和插入不是原子性操作,在并发量比较高的时候,可能两个线程都...

    1. 数据插入或更新,既可以在java业务层进行,也可以在mysql数据库层处理。

    2. 业务层一般做法是先查询,如果不存在在插入,如果存在则更新,但是查询和插入不是原子性操作,在并发量比较高的时候,可能两个线程都查询某个记录不存在,所以会执行两次插入,然后其中一条必然会因为主键(这里说的主键不是递增主键)冲突而失败。

    而数据库层mysql中 insert ... on duplicate key update 是原子性操作,高效又安全。

    3. 但是使用数据库层处理的前提是:on duplicate key update 的 key必须是表的主键或者是由某个或多个字段构成的唯一索引。

    4. on duplicate key update 可以更新单个或多个字段:附录

    -- 更新单个字段
    <insert id="saveOrUpdate">
      	insert into 
      		t_model(user_prod_id,user_id,prod_id,num)
      	values
    	  	(
    	  		#{userProdId},
    	  		#{userId},
    	  		#{prodId},
    	  		#{num}
    	  	)
    	on duplicate key update
      	num = num+#{num}
      </insert>
    
    
    -- 批量插入或更新
    <insert id="batchInsert" keyProperty="file">
      	insert into 
      		t_model(union_id,mer_id,file,create_time,goods_name)
      	values
      		<foreach collection="list" separator="," item="item">
      			(
      				#{item.unionId},
      				#{item.merId},
      				#{item.file},
      				#{item.createTime},
      				#{item.goodsName}
      			)
      		</foreach>
      	on duplicate key update file = file
      </insert>
    
    
    -- 更新多个字段
    <insert id="saveOrUpdateStatus">
      	insert into 
      		t_model(order_id,consumer_status,success_status,send_status,create_time)
        values
        	(	
        		#{orderId},
        		#{consumerStatus},
        		#{successStatus},
        		#{sendStatus},
        		#{createTime}
        	)
        on duplicate key update
    		success_status = #{successStatus},
    		consumer_status = #{consumerStatus},
    		update_time = #{updateTime}
      </insert>

    5. 批量,同时避免重复插入:

    <insert id="moveShopProduct">
    		insert into t_model(cloud_shop_product_id, cloud_shop_id, cloud_category_id, cloud_product_square_id)
    		<foreach collection="cloudProductSquareIds" item="cloudProductSquareId" separator="union all">
    			select md5(uuid()), #{cloudShopId}, #{cloudCategoryId}, #{cloudProductSquareId} FROM DUAL
    			where not exists (
    				select * from t_modelwhere status = true
    				and cloud_shop_id=#{cloudShopId}
    				and cloud_category_id=#{cloudCategoryId}
    				and cloud_product_square_id=#{cloudProductSquareId}
    			)
    		</foreach>
    	</insert>

     

    展开全文
  • bit类型数据怎么更新插入数据库

    千次阅读 热门讨论 2019-07-30 10:26:56
    数据库设计 在本次项目中,使用采用的数据类型为bit,但是如何将bit类型的数据更新添加到数据库呢? 数据库 SQL语句: ...为什么要写1呢,因为bit类型0表示...更新插入: 这样就可以成功更新、添加数据了 ...

    数据库设计
    在本次项目中,使用采用的数据类型为bit,但是如何将bit类型的数据更新添加到数据库呢?

    数据库
    在这里插入图片描述

    SQL语句:
    在这里插入图片描述
    为什么要写1呢,因为bit类型0表示false,1表示true。目前实现的是注册功能,所以使用状态为再用也就是true,如果您的实际使用情况需要bit类型呈现false,将1改为0即可。

    更新、插入:
    在这里插入图片描述

    这样就可以成功更新、添加数据了

    展开全文
  • 需要在插入更新,修改的最后插入connection.commit()提交 比如: package Model; import java.sql.*; public class SQLUtils { public static Connection connection; public static SQLUtils instance = ...
  • oracle—插入更新

    千次阅读 2020-04-29 14:40:55
    MERGE INTO T T1 USING (SELECT '1001' AS a,2 AS b FROM dual) T2 ON ( T1.a=T2.a) WHEN MATCHED THEN UPDATE SET T1.b = T2.b WHEN NOT MATCHED THEN ... INSERT (a,b) VALUES(T2.a,T2.b...插入更新T表...
  • MySQL批量插入更新

    万次阅读 多人点赞 2019-05-20 16:07:36
     replace into与insert into on duplicate key update都可以实现批量的插入更新更新还是插入取决与记录中的pk或uk,前者是先delete后insert,后者是update。 3. insert ignore into会忽略很多数据上的冲突与约束...
  • 基本语法 insert into table_name (id,name,age) values(1,'xiaoming',18),().. ON CONFLICT(id) DO .. 实例 INSERT INTO test_postgre(id,name,InputTime,age) VALUES('1','postgre','2018-01-10 22:00:00',24) ...
  • ETL工具kettle的插入更新操作

    千次阅读 2020-10-14 09:41:57
    更新组件 对于插入错误的数据进行更新操作 四、MySQL 关于MySQL内置的更新插入语句 INSERT INTO baidu (TITLE,LINK) VALUES ('产品介绍 - 八爪鱼采集器','这是一条测试数据') ON DUPLICATE KEY UPDATE LINK = '这...
  • 插入或者更新的并发情况处理

    千次阅读 2019-12-12 19:00:55
    操作分为两步,第一步查询是否存在,如果不存在插入,存在更新。 关键是查询判断和后面的插入或者更新不是原子操作,如果判断之后,其他线程进行了插入操作,抛出唯一key异常。 private void ...
  • spring data jpa 自动保存更新插入时间

    千次阅读 2018-04-10 17:05:13
    spring data jpa 自动保存更新插入时间新建BaseEntity,@MappedSuperclass @EntityListeners(AuditingEntityListener.class)很重要@MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class ...
  • MyBatis的批量更新插入的正确姿势

    千次阅读 2019-03-18 22:59:53
    之前写过一篇mybatis批量插入的文章:...根据https://blog.csdn.net/huanghanqian/article/details/83177178所述千条以上的批量插入或者更新慎用foreach方式,ExecutorType.BATCH 的插入方式,...
  • kettle简单的更新插入

    千次阅读 2019-04-16 22:11:59
    二、简单的数据表插入\更新  (1)新建表插入  在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。如图所示: 双击拖过来的表,可以编辑表输入。  选择数.....
  • java连接数据库后进行更新插入操作

    千次阅读 2016-08-23 23:50:03
    接上一次的查询操作,这次将更新插入的代码补充 首先是服务端的接收端,接收到客户端的请求则发送相应操作 if ("1".equals(message)) { //从mysql数据库仓库中查询数据 jc.mysqlSelect(...
  • PostgreSQL upsert(插入更新)教程

    千次阅读 2021-01-03 19:12:34
    本文介绍如何使用PostgreSQL upsert特性插入或当被插入数据已存在则更新数据。 1. 介绍PostgreSQL upsert 在关系型数据库中,upsert是一个组合词,即当往表中插入记录,如果该记录已存在则更新,否则插入新记录。...
  • 接着上一篇文章的问题:在实际的系统开发和后期的数据维护工作中,经常会遇到这样的需求—将一个表的增量数据插入到该数据表中。 上一篇《利用 LEFT JOIN 实现增量数据的 INSERT INTO 插入》中,没有对插入的数据...
  • mybatis 插入或者更新

    千次阅读 2018-05-24 13:28:04
    &lt;insert id="updateOrInsertPhone2Email" useGeneratedKeys="true" keyProperty="...-- 查看是否存在memberid,如果存在及更新,否则插入 --&gt; &lt;selectKey k
  • Mysql 中的插入更新

    千次阅读 2019-01-15 15:58:25
    如果想在mysql 中插入数据,并且当主键相同时 即做更新操作,可以使用以下两种方法: 一、replace into tablename (id,name) values(null,wang); 二、 insert into table (player_id,award_type,num) values(20001,0...
  • id = VALUES(affairs_id), affairs_stage_id = VALUES(affairs_stage_id), tmp_id = VALUES(tmp_id), stage_id = VALUES(stage_id), po_no = IFNULL(VALUES(po_no),po_no) 补充说明 1,批量插入直接在values ...
  • mysql 存在则更新否则插入

    千次阅读 2019-06-14 08:59:19
    第一种方式: INSERT INTO t_yf_token( ...存在则忽略,不存在则插入: INSERT IGNORE INTO xx (field1,field2) VALUES ( VALUES1,VALUES2 ) INSERT IGNORE INTO t_xx (xx) SELECT xx FROM dual;
  • 本文以批量插入配置为例,其他半斤八两~ Spring boot+mybatis plus环境,单条插入用的是BaseMapper自带的insert方法 public ApiResult addAnc(Anc anc) { ApiResult result = new ApiResult(); Integer ...
  • kettle插入/更新

    千次阅读 2018-08-25 09:57:07
    kettle插入/更新 1.数据库环境 --------------------实时表 CREATE TABLE NowTable(ID INT,NAME VARCHAR(100),Info VARCHAR(100)); INSERT INTO NowTable VALUES(1,'张启山','长沙'); INSERT INTO NowTable ...
  • Oracle实现批量插入更新

    千次阅读 2019-07-04 21:41:30
    https://www.jb51.net/article/132823.htm https://crukor.iteye.com/blog/2215573 https://www.jb51.net/article/132823.htm https://blog.csdn.net/lwpczy1/article/details/79158535
  • 如图 更新字段必须包含所有用来查询的关键字,否则会出现更新异常
  • 目录mybatisPlus中null值更新和插入问题实际项目解决方法示例field-strategy字段更新插入策略介绍枚举类FieldStrategy源码枚举类字段简介 mybatisPlus中null值更新和插入问题 配置mybatisPlus的项目中,默认进行了...
  • 对于根据主键,判断数据是直接插入数据库还是更新数据库,在mysql中仅需在普通的插入语句后边添加 on duplicate key update pro1=values(pro1), pro2=values(pro2); 如:insert into table1 (id, pro1, pro2, ...
  • 批量插入更新的SQL实现

    千次阅读 2018-12-07 11:59:22
    昨天需要实现一个mybatis+MySQL的数据层接口,一条可以批量插入更新的SQL语句,插入整个list,设置一个唯一的key,当表中有该条记录,就更新该记录,没有的就插入一条新纪录。下面给出具体的SQL语句: &lt;...
  • 数据库的插入更新语句

    千次阅读 2017-05-22 21:02:20
    目的:实现在数据库插入数据的时候,只对重复的数据进行更新; 实现方式: 1、在表中建立一个唯一索引,主键(已有唯一索引的特性) 2、在插入数据 sql语句:insert into table_name( 列名1,列名2)values(。。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 798,398
精华内容 319,359
关键字:

更新插入