1. 程式人生 > >JDBC PreparedStatement高階特性:批量執行sql語句

JDBC PreparedStatement高階特性:批量執行sql語句

案例:

工具方法:

public static Connection getConnection(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            ct = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","squirrel","xiaoyang");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return
ct; } /**釋放資料庫連結資源:注意資料庫資源關閉的順序*/ public static void closeConnection(){ try { //注意關閉資料庫資源的先後順序 if(rs!=null){ rs.close(); }if(ps!=null){ ps.close(); }if(ct!=null){ ct.close(); } } catch
(SQLException e) { e.printStackTrace(); } }

測試方法:

/**PreparedStatement批量執行sql*/
    public static void excuteBatchInsertDatabase(){

        ct=getConnection();

        try {
            ct.setAutoCommit(false);
            ps=ct.prepareStatement("insert into user(name,passwd,age,gender) values(?,?,?,?)"
); ps.setString(1, "BBBB"); ps.setString(2, "BBBB"); ps.setInt(3, 20); ps.setString(4, "F"); ps.addBatch(); ps.setString(1, "BBBB"); ps.setString(2, "BBBB"); ps.setInt(3, 20); ps.setString(4, "F"); ps.addBatch(); /** * 等價於sql語句: * insert into user(name,passwd,age,gender) values * ("BBBB","BBBB",20,'F'), * ("BBBB","BBBB",20,'F'); */ ps.executeBatch(); //批量執行sql,避免因此單次的insert操作建立多個Connection浪費資源 ct.commit(); } catch (Exception e) { e.printStackTrace(); try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } }finally{ closeConnection(); } }

執行excuteBatchInsertDatabase()方法資料庫記錄:
這裡寫圖片描述

資料庫資料記錄表明:sql語句批量執行成功
注意:

批量查詢最好交由一個事務組控制,如果出現操作異常可以進行事務回滾,不至於造成部分資料更新部分資料更新失敗的尷尬局面,避免你髒資料汙染資料庫

相關推薦

JDBC PreparedStatement高階特性批量執行sql語句

案例: 工具方法: public static Connection getConnection(){ try { Class.forName("com.

HIVE beeline使用shell 批量執行sql語句

shell指令碼如圖所示: principal:代表的是認證方式 #!/bin/sh #-------------------------------------------- #Date: #Author: #------------------------------

c#實現用SQL池(多執行緒),定時批量執行SQL語句 (轉)

在實際專案開發中,業務邏輯層的處理速度往往很快,特別是在開發Socket通訊服務的時候,網路傳輸很快,但是一旦加上資料庫操作,效能一落千丈,資料庫操作的效率往往成為一個系統整體效能的瓶頸。面對這問題,我們怎麼辦呢?好,下面我就為大家介紹一種方法:構建SQL池,分離業務邏輯層

深入理解Mysql執行SQL語句過程

開發人員基本都知道,我們的資料存在資料庫中(目前最多的是mysql和oracle,由於作者更擅長mysql,所以這裡預設資料庫為mysql),伺服器通過sql語句將查詢資料的請求傳入到mysql資料庫。資料庫拿到sql語句以後。都是進行了哪些操作呢?這裡向大家介紹下我

JDBC程式設計學習筆記(二)——執行SQL語句 ExecuteSQL.java

本文主要介紹使用Statement的execute()方法來執行任意的SQL語句,並列出你在執行該程式中可能會遇到的一系列問題,我只能將我在執行中遇到的問題描述,希望對你有所幫助。首先,你需要建立一個配置資料庫的配置檔案,如下圖: 檔案的內容如下圖: 內容主要是MySQ

批量執行sql語句的一個方法

該方法主要是用於多箇中間以go隔開的多個語句,通常在用sql語句批量建立表或者試圖或者儲存過程時。具體程式碼如下:/// <summary> /// 批量執行sql語句 /// 唐軍平 2009-9-17 /// </summary> /// <

JDBC 復習4 批量執行SQL

pre bat 機制 tint close .sql str 執行效率 batchsql 1使用jdbc進行批量執行SQL在實際的項目開發中,有時候需要向數據庫發送一批SQL語句執行,這時應避免向數據庫一條條的發送執行,而應采用JDBC的批處理機制,以提升執行效率。 pac

java基礎鞏固---jdbc介面PreparedStatement執行sql語句

PreparedStatement執行sql語句 public class Demo1 {     /**      * 增加      */     @Test     public vo

JDBC批量執行sql(轉)

JDBC的批量處理語句包括下面兩個方法:addBatch(String):新增需要批量處理的SQL語句或是引數;executeBatch();執行批量處理語句;通常我們會遇到兩種批量執行SQL語句的情況

Asp.Net MVC EF之一使用Database類在EF框架中執行Sql語句

包括 ans cti foo lists sele 下場 tex 對數 h4 { padding: 8px 5px; background-color: #32c5d2 } .start-box,.body { padding: 10px } .tit { font-siz

學習筆記——CSS的高階特性複合、繼承、層疊

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/gaoce227/article/details/72784888 一、複合選擇器 css基本選擇器有標記選擇器、ID選擇器和類選擇器三種,由此三種組合又構成了複合選

Oracle基礎6:通過sqlplus執行sql語句後的結果判斷

這篇文章介紹一下如何對sqlplus執行的sql語句結果進行判斷。 環境準備 使用Oracle的精簡版建立docker方式的demo環境,詳細可參看: https://blog.csdn.net/liumiaocn/article/details/82733272

執行sql語句為什麽?用PreparedStatement要比Statement好用

運行 可維護性 一個 nbsp 連接池 conn 應用 body stat PreparedStatement public interface PreparedStatement extends Statement;可以看到PreparedStatement是Statem

Python語法基礎|高階用法|高階特性匿名函式lambda

定義一個普通函式,起碼需要def關鍵字+函式名+函式體。而lambda可定義一個匿名函式。   >>> add = lambda x,y:x+y >>> type(add) <type 'function'>   lambd

PreparedStatement執行sql語句

run student urn stack 風險 tst new etc insert import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.Prepare

Phoenix(3)Phoenix執行sql指令碼

一、實現功能 將需要執行sql語句寫入指令碼,然後,使用psql.py執行。 二、步驟 1.指令碼內容 (1)us_population.sql CREATE TABLE IF NOT EXISTS us_population ( "state" CHAR(2) NOT NULL

Sqlserver利用遊標批量執行SQL

  以下游標實現的功能,將A資料庫的表資料批量新增到B資料庫的表中,然後在B資料庫中先新增相應的欄位,然後根據相應的欄位進行聯表更新; 一、利用遊標批量新增欄位 declare  @table_name varchar(300) declare  @mSQL

SpringBoot - 配置Druid允許批量執行SQL

Druid預設是不開啟批量SQL執行的,屬性為MultiStatementAllow.配置為true即可. yml檔案配置: filters:stat  spring: profiles: active: dev datasource: type: co

python高階特性切片/迭代/列表生成式/生成器

廖雪峰老師的教程上學來的,地址:python高階特性  下面以幾個具體示例演示用法: 一、切片 1.1 利用切片實現trim def trim(s): while s[:1] == " " or s[-1:] == " ": # 若第1個元素或最後1個元素為空格 if

怎麼建立JDBC語句物件來執行SQL語句(詳解)

JDBC執行SQL語句: 一旦獲得了連結,我們可以與資料庫進行互動。JDBC Statement和PreparedStatement 介面定義了使 您能傳送SQL命令並從資料庫 進行接收資料的方法和屬性。 1.Statement:建立語句物件 在使用Statement