`

批量更新,插入方法

    博客分类:
  • java
阅读更多
        http://www.iteye.com/news/19094  jquery

public boolean doSaveNinfoshowcontrol(final List<NinfoShowControlDto> list)throws ApplicationException
{
try {
getHibernateTemplate().execute(new HibernateCallback(){
@Override
public Object doInHibernate(Session sess)
throws HibernateException, SQLException {
int rows=0;
for (NinfoShowControlDto ninfoShowControlDto : list) {
sess.save(ninfoShowControlDto);
rows++;
if(rows%50==0)
{
sess.flush();
sess.clear();
}
}
return new Integer(rows);
}
});
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}



public boolean editStatusBatch(final ArrayList list,Integer status) throws ApplicationException {
try {
String sql = "";
if(status != null && status == 0){
sql = "UPDATE PUBHOTSHOW SET STATUS = 1 WHERE ID = ?";
}else {
sql = "UPDATE PUBHOTSHOW SET STATUS = 0 WHERE ID = ?";
}
BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i)
throws SQLException {
ps.setLong(1,(Integer)list.get(i) );
}
public int getBatchSize() {
return list.size();
}
};
this.getJdbcTemplate().batchUpdate(sql, setter);
return true;
} catch (Exception e) {
e.printStackTrace();
ExceptionCause ec = new ExceptionCause();
ec.setMessageKey("修改状态批处理异常!");
throw new ApplicationException(ec);
}
}
@Override
public boolean saveOrUpdateBatchData(List<AdminPubHotShowDto> list)
throws ApplicationException {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
try {
         // 当list不为空的
            if(list != null && list.size()>0){
                Session session = this.getSessionFactory().openSession();
                Transaction tx = session.beginTransaction(); 
                for(int i = 0; i< list.size(); i++){
                AdminPubHotShowDto dto = list.get(i);
                    if(dto.getId() != null){
                        session.update(dto);
                    }else {
                        session.save(dto);
                    }
                    if ( i != 0 && i % 20 == 0 ) {
                      
                        session.flush();
                        session.clear();
                    }
                }
                 tx.commit();
                 if(session.isOpen()){
                     session.close();
                 }
            }
            return true;
        } catch (java.lang.Throwable t) {
            t.printStackTrace();
            ExceptionCause ec = new ExceptionCause();
            ec.setMessageKey("批量添加或修改资源数据异常!");
            throw new ApplicationException(ec);
        }
}



分享到:
评论

相关推荐

    MongoDB 批量插入及更新

    ### MongoDB 批量插入及更新知识点详解 #### 一、MongoDB简介 MongoDB是一款开源的NoSQL数据库系统,以其高性能、高可用性和易用性而受到广泛欢迎。它使用JSON-like文档(即BSON格式)来存储数据,并且支持动态模式...

    EF批量更新、批量插入、 批量删除使用的是EFUtilities,免费的操作简单,速度超级快

    在.NET开发中,Entity Framework(简称EF)是一个强大的对象关系映射(ORM)框架,它允许开发者使用...通过其简单的API,开发者可以轻松地集成到现有的EF项目中,实现批量插入、更新和删除,从而优化应用程序的性能。

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    Mybatis Plus 提供了 `batchInsert()` 和 `batchUpdate()` 方法来实现批量插入和更新。这些方法接受一个实体对象列表,然后一次性将所有对象插入或更新到数据库。然而,当涉及到唯一索引时,简单的批量操作可能无法...

    JDBC批量插入 更新 删除等操作

    批量更新的原理与批量插入类似,都是通过`PreparedStatement`的`addBatch()`方法将多个更新操作加入到一个批处理队列中,然后调用`executeBatch()`方法执行这些更新操作。这种方式可以显著减少网络往返次数,提高...

    C# 批量插入和更新数据

    ### C# 批量插入和更新数据的知识点详解 #### 一、背景介绍 在数据库应用开发中,尤其是在处理大量数据的时候,批量插入和更新数据是提高效率的关键技术之一。传统的单条插入或更新方式在面对大数据量时,不仅耗时...

    SQL Server批量插入批量更新工具类

    SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate

    .Net中批量插入的几种实现方法

    本篇文章将深入探讨.NET中实现批量插入的几种主要方法,并对比它们的性能和适用场景。 首先,最基础的方法是通过循环逐条插入。这种方法简单易懂,适用于数据量较小的情况。例如,你可以创建一个数据库连接,打开...

    批量插入数据库方法

    在IT行业中,数据库操作是日常开发中的重要环节,尤其是在处理大量数据时,高效的插入方法显得尤为重要。本示例聚焦于“批量插入数据库方法”,通过C#编程语言来实现这一功能。C#是一种广泛用于Windows平台的面向...

    LINQ 数据的更新,插入、删除、批量更新

    本篇文章将详细探讨如何使用LINQ进行数据的更新、插入、删除以及批量更新操作,并特别关注在多人同时修改同一条数据时如何处理冲突,以及如何通过错误处理策略来确保更新的连续性。 首先,我们来看如何使用LINQ进行...

    高效批量插入和更新

    C#批量插入,更新ORACLE 保存100万条数据大概3-5秒 保存或者更新100万条数据大概20秒 DataTable保存100万条数据大概1-2分钟 可能因环境原因时间有差异,不过可以看出性能还是很大提升的

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...

    mybatis-generator,一对一,一对多,批量更新插入

    使用方法请看博客https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827

    mybatis-generator,一对一,一对多,批量更新插入2

    使用方法请看博客 https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827

    mybatispuls3.5使用批量插入

    在Spring框架中,可以通过在批量插入方法上添加`@Transactional`注解来开启事务: ```java @Transactional public void batchInsert() { // ... } ``` 7. 考虑性能优化: 批量插入的大小也需要根据实际业务和数据库...

    oracle oci 批量插入源代码

    批量插入(Batch Insert)是提高数据导入效率的重要手段,尤其在需要处理大量数据时,能显著减少网络通信和数据库调用次数,从而提升性能。 以下是对"Oracle OCI 批量插入源代码"的详细说明: 1. **oci_batch_...

    cass影像批量批量插入影像插件

    cass影像批量批量插入影像插件

    oracle ODP.NET 批量插入或更新

    ##### (一)批量插入方法 `BatchInsert` 该方法实现了通过ODP.NET对Oracle数据库进行批量插入的功能。 - **参数说明** - `tableName`: 表示要插入数据的目标表名。 - `columnRowData`: 是一个字典类型,键为列名...

    HQL批量插入、更新和删除

    ### HQL批量插入、更新和删除 #### 一、概述 在进行数据库操作时,批量处理数据是一项常见的需求。为了提高效率并减少网络传输开销,HQL(Hibernate Query Language)提供了一种灵活的方式来实现这一目标。HQL是...

    C语言实现SQLite的批量插入及性能对比

    本话题聚焦于C语言如何实现SQLite的批量插入以及性能对比,这对于优化数据库操作效率具有深远意义。 首先,让我们详细探讨SQLite的单个插入与批量插入。在C语言中,SQLite提供了SQL接口,通过API函数来执行SQL语句...

    SQLLITE的批量插入。。。

    在SQLite中,我们可以使用多种方法实现批量插入。 1. **多行INSERT语句**:这是最基础的批量插入方式。通过在单个INSERT语句中列出多个VALUES子句,可以一次性插入多条记录。例如: ```sql INSERT INTO TableName...

Global site tag (gtag.js) - Google Analytics