`
starbhhc
  • 浏览: 658678 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

批量插入和更新数据库例子

阅读更多
import java.sql.BatchUpdateException;   
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
  
public class Main {   
  public static void main(String[] args) throws Exception {   
    Connection conn = getMySqlConnection();   
    ResultSet rs = null;   
    Statement stmt = null;   
    try {   
        conn = getMySqlConnection();   
        stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,   
                                    ResultSet.CONCUR_UPDATABLE);   
        conn.setAutoCommit(false);   
        stmt.addBatch("INSERT INTO survey(id, name) VALUES('11', 'Alex')");   
        stmt.addBatch("INSERT INTO survey(id, name) VALUES('22', 'Mary')");   
        stmt.addBatch("INSERT INTO survey(id, name) VALUES('33', 'Bob')");   
        int[] updateCounts = stmt.executeBatch();   
        System.out.println(updateCounts);   
        conn.commit();   
        rs = stmt.executeQuery("SELECT * FROM survey");   
        while (rs.next()) {   
            String id = rs.getString("id");   
            String name = rs.getString("name");   
            System.out.println("id="+id +"  name="+name);   
        }   
    }   
    catch(BatchUpdateException b) {   
        System.err.println("SQLException: " + b.getMessage());   
        System.err.println("SQLState: " + b.getSQLState());   
        System.err.println("Message: " + b.getMessage());   
        System.err.println("Vendor error code: " + b.getErrorCode());   
        System.err.print("Update counts: ");   
        int [] updateCounts = b.getUpdateCounts();   
        for (int i = 0; i < updateCounts.length; i++) {   
            System.err.print(updateCounts[i] + " ");   
        }   
    }   
    catch(SQLException ex) {   
        System.err.println("SQLException: " + ex.getMessage());   
        System.err.println("SQLState: " + ex.getSQLState());   
        System.err.println("Message: " + ex.getMessage());   
        System.err.println("Vendor error code: " + ex.getErrorCode());   
    }   
    catch(Exception e) {   
        e.printStackTrace();   
        System.err.println("Exception: " + e.getMessage());   
    }   
    finally {   
        rs.close();   
        stmt.close();   
        conn.close();   
    }   
  }   
  
  private static Connection getHSQLConnection() throws Exception {   
    Class.forName("org.hsqldb.jdbcDriver");   
    System.out.println("Driver Loaded.");   
    String url = "jdbc:hsqldb:data/tutorial";   
    return DriverManager.getConnection(url, "sa", "");   
  }   
  
  public static Connection getMySqlConnection() throws Exception {   
    String driver = "org.gjt.mm.mysql.Driver";   
    String url = "jdbc:mysql://localhost/demo2s";   
    String username = "oost";   
    String password = "oost";   
  
    Class.forName(driver);   
    Connection conn = DriverManager.getConnection(url, username, password);   
    return conn;   
  }   
  
  public static Connection getOracleConnection() throws Exception {   
    String driver = "oracle.jdbc.driver.OracleDriver";   
    String url = "jdbc:oracle:thin:@localhost:1521:caspian";   
    String username = "mp";   
    String password = "mp2";   
  
    Class.forName(driver); // load Oracle driver   
    Connection conn = DriverManager.getConnection(url, username, password);   
    return conn;   
  }   
}   
分享到:
评论

相关推荐

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

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

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

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

    c# 对sqlite基本操作,带批量插入(百万级秒插)

    1. **预热数据库**:在开始批量插入之前,先创建表结构和索引,避免插入过程中自动创建。 2. **禁用约束检查**:在批量插入期间,可以暂时禁用外键和唯一性约束,以减少验证时间。插入完成后,记得重新启用。 3. **...

    Java批量插入和查询

    Java批量插入和查询是Java开发中的一种常见操作,用于将大量数据插入到数据库中或从数据库中查询大量数据。本文将详细介绍Java批量插入和查询的相关知识点。 批量插入 批量插入是指将大量数据一次性插入到数据库中...

    PostgreSQL实现批量插入、更新与合并操作的方法

    在PostgreSQL中,批量插入、更新和合并操作是数据库管理中常见的需求,尤其是在处理大量数据时。PostgreSQL提供了多种方法来实现这些操作,包括使用`INSERT ON CONFLICT`(也称为`UPSERT`)和`UNNEST`函数。 首先,...

    labview循环写入数据库例子

    - 性能优化:批量插入可能比逐条插入更有效率,尤其是在处理大量数据时。 - 数据一致性:在写入数据库时,应考虑事务处理,以确保数据的一致性和完整性。 - 安全性:保护数据库免受未授权访问,确保数据的安全性。 ...

    sql下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法。第一种方法是使用循环语句逐个将数据项插入到数据库中;第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表;第三种使用的方法是sql server中的...

    Excel访问数据库的例子

    通过SQL,用户可以查询、插入、更新和删除数据,创建和修改表结构,甚至执行复杂的数据库操作。 3. **VB6(Visual Basic 6)**: - **事件驱动编程**:VB6是基于Windows平台的开发环境,采用直观的拖放界面和事件...

    实例讲解Java批量插入、更新数据

    在Java编程中,批量插入和更新数据是数据库操作中常见的需求,尤其是在处理大量数据时,可以显著提高效率。本文将通过一个具体的实例来探讨如何在Java中实现对Oracle数据库的批量数据操作。 首先,批量插入数据通常...

    安卓数据库操作例子

    - 使用批量插入来减少数据库操作次数。 8. **安全考虑** - 数据库文件通常位于`/data/data/&lt;package_name&gt;/databases/`路径下,非root用户无法直接访问。 - 应对敏感数据进行加密,保护用户隐私。 9. **DBDemo...

    [mysql]mysql通过on duplicate key update实现批量插入或更新(csdn)————程.pdf

    在这个例子中,如果插入的`(activity_id, period, user_id)`组合已经存在,那么`rank`、`score`和`total_score`字段将被更新为新的值,其他字段不会改变,从而实现了批量插入或更新。 然而,`ON DUPLICATE KEY ...

    ibatis的批量插入DAO实例

    批量插入通常在处理大量数据时非常有用,它可以显著提高性能,减少数据库交互次数。批量插入的SQL语句通常使用`INSERT INTO table (column1, column2, ...) VALUES (?, ?, ...), (?, ?, ...), ...`这样的格式。 ...

    kettle同步数据库所有的表数据到其他库.rar

    - **增量同步**:若需要持续同步,可以设置基于时间戳或自增ID的增量更新,只同步源数据库中新增或修改的记录。 5. **错误处理和日志记录**: 在同步过程中,应启用错误处理步骤,如"错误处理"或"跳过错误",以...

    PHP增强版增删改查操作数据库例子(超值)

    `UpdateChu.php`和`Delete.php`则对应更新和删除操作,它们会根据用户的选择(通常是通过ID)执行UPDATE或DELETE SQL语句。在执行删除操作时,务必谨慎,以防止数据丢失。 `newssystem.sql`是一个SQL脚本文件,它...

    Spring JdbcDaoSupport 批量插入数据

    本文将深入探讨如何利用`JdbcDaoSupport`进行批量插入数据的操作,以及其背后的原理和源码分析。 首先,`JdbcDaoSupport`是`AbstractJdbcDaoSupport`的子类,它提供了对JDBC访问的便捷封装,允许开发者无需直接管理...

    批量上传图片到数据库

    下面是一个简单的示例,展示了如何使用Linq将图片信息插入数据库: ```csharp using (var context = new YourDbContext()) { foreach (var file in uploadedFiles) { var image = new Image() { FileName = ...

    c#操作access数据库的简单例子

    在建立数据库连接后,调用`ExecuteNonQuery`方法执行非查询语句,如插入、更新或删除数据。 ### 二、从Access数据库中检索特定记录ID值 为了从Access数据库中获取特定记录的ID值,可以使用`OleDbCommand`对象的`...

    DataTable批量插入数据到SQL Server 2005

    当我们需要将这些数据批量插入到SQL Server 2005数据库时,使用DataTable和DataSet能有效提高效率,避免频繁的数据库交互。下面我们将详细探讨如何实现这个过程,以及相关的技术要点。 首先,创建DataTable对象并...

    数据库实验报告数据更新.pdf

    * 根据书上的例子,针对 TPCH 数据库模式设计各种更新语句,每种类型更新语句至少要设计一个,描述清楚数据更新要求,运行你所设计的更新语句,并截图相应的实验结果。 * 实验步骤和实验总结中要详细描述实验过程中...

    mybatis中批量插入的两种方式(高效插入)

    总结来说,MyBatis 通过`foreach` 标签和`ExecutorType.BATCH` 提供了灵活且高效的批量插入机制。`foreach` 适用于构建动态SQL,处理`IN`条件;而`ExecutorType.BATCH` 优化了批量插入的性能,通过调整提交频率和...

Global site tag (gtag.js) - Google Analytics