1. 程式人生 > >JDBC操作Vertica資料庫,用PreparedStatements物件實現批量插入資料

JDBC操作Vertica資料庫,用PreparedStatements物件實現批量插入資料

import java.sql.*;
import java.util.Properties;
public class BatchInsertExample {
    public static void main(String[] args) {
 
        /* JDBC 3.0 以前的版本需要新增下邊這段程式碼 */  
        /* 
         * try { Class.forName("com.vertica.jdbc.Driver"); } catch 
         * (ClassNotFoundException e) { // Could not find the driver class. 
         * Likely an issue // with finding the .jar file. 
         * System.err.println("Could not find the JDBC driver class."); 
         * e.printStackTrace(); return; // Bail out. We cannot do anything 
         * further. } 
         */  
        Properties myProp = new Properties();
        myProp.put("user", "ExampleUser");
        myProp.put("password", "password123");
		
	 //Set streamingBatchInsert to True to enable streaming mode for batch inserts.
	 //myProp.put("streamingBatchInsert", "True");
        
	 Connection conn;
        try {
            conn = DriverManager.getConnection(
                            "jdbc:vertica://VerticaHost:5433/ExampleDB",
                            myProp);
            // establish connection and make a table for the data.
            Statement stmt = conn.createStatement();
            
            
            // Set AutoCommit to false to allow Vertica to reuse the same
            // COPY statement
            conn.setAutoCommit(false);
            
            
            // Drop table and recreate.
            stmt.execute("DROP TABLE IF EXISTS customers CASCADE");
            stmt.execute("CREATE TABLE customers (CustID int, Last_Name"
                            + " char(50), First_Name char(50),Email char(50), "
                            + "Phone_Number char(12))");
            // Some dummy data to insert. 
            String[] firstNames = new String[] { "Anna", "Bill", "Cindy",
                            "Don", "Eric" };
            String[] lastNames = new String[] { "Allen", "Brown", "Chu",
                            "Dodd", "Estavez" };
            String[] emails = new String[] { "
[email protected]
", "[email protected]", "[email protected]", "[email protected]", "[email protected]" }; String[] phoneNumbers = new String[] { "123-456-7890", "555-444-3333", "555-867-5309", "555-555-1212", "781-555-0000" }; // Create the prepared statement PreparedStatement pstmt = conn.prepareStatement( "INSERT INTO customers (CustID, Last_Name, " + "First_Name, Email, Phone_Number)" + " VALUES(?,?,?,?,?)"); // Add rows to a batch in a loop. Each iteration adds a // new row. for (int i = 0; i < firstNames.length; i++) { // Add each parameter to the row. pstmt.setInt(1, i + 1); pstmt.setString(2, lastNames[i]); pstmt.setString(3, firstNames[i]); pstmt.setString(4, emails[i]); pstmt.setString(5, phoneNumbers[i]); // Add row to the batch. pstmt.addBatch(); } try { // Batch is ready, execute it to insert the data pstmt.executeBatch(); } catch (SQLException e) { System.out.println("Error message: " + e.getMessage()); return; // Exit if there was an error } // Commit the transaction to close the COPY command conn.commit(); // Print the resulting table. ResultSet rs = null; rs = stmt.executeQuery("SELECT CustID, First_Name, " + "Last_Name FROM customers ORDER BY CustID"); while (rs.next()) { System.out.println(rs.getInt(1) + " - " + rs.getString(2).trim() + " " + rs.getString(3).trim()); } // Cleanup conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }

輸出結果:

1 - Anna Allen
2 - Bill Brown
3 - Cindy Chu
4 - Don Dodd
5 - Eric Estavez

相關推薦

JDBC操作Vertica資料庫PreparedStatements物件實現批量插入資料

import java.sql.*; import java.util.Properties; public class BatchInsertExample { public static void main(String[] args) {          

MyBatis+Oracleforeach標籤實現批量插入資料以及主鍵自增

1.前言          最近做一個批量匯入影像的需求,將多條記錄批量插入資料庫中。解決思路:在程式中封裝一個List集合物件,然後把該集合中的實體插入到資料庫中,因為專案使用了MyBatis,所以打算使用MyBatis的foreach功能進行批量插入。資料庫用的是Ora

多組input檔案每組 multiple選擇多張圖片上傳可增刪其中任意一張圖片formData物件實現;(ajax做非同步自己做延時同步)

input 、multiple選擇多張圖片時,需要刪除其中的一張圖片怎麼做,大家都知道 input 中的檔案是不能刪除和更改的,只能清空,這裡我的做法是 定義一個物件儲存器把需要的檔案存在儲存器中 formData,後臺不從Input中讀取,從物件儲存器中獲取檔案,一組圖片使

SQL儲存過程實現批量插入資料

1,單條插入 INSERT INTO time_by_day   (time_id, the_date, the_year, month_of_year, quarter,day_of_month) VALUES ('1101', '1999-10-1', '1999', '10', 'Q4','1'

JDBC -> 連線資料庫簡單查詢操作

import java.sql.*; public class Test { public static void main(String[] args) { try { // 載入驅動 Class.forName("com.microsoft.sqlserver.jdbc

C語言操作MySQL資料庫進行連線、插入、修改、刪除等操作

  很多人用到MySQL來開發一些專案,有時為了效能,我們會直接用C語言來開發相關的模組,尤其在我們的web應用中,雖然PHP、JSP等指令碼均提供了MySQL的介面,但是顯然直接使用C語言具有更好的安全性和效能,Michael以前用PHP開發的多個專案中就使用了C語言編寫的

基於Oracle資料庫SSM框架和easyUI實現分頁查詢操作

基於Oracle資料庫,用SSM框架和easyUI來實現分頁查詢操作: 第一步,首先擬定好資料庫中的表,在eclipse裡面用maver專案搭配好SSM框架(其中關於SSM框架的pom.xml,spring-mvc.xml,spring-bean.xml,以及webapp目錄下的WEB-INF

JDBC操作Oracle資料庫前期準備及程式設計初體驗

第一步:前期準備 (1).首先需要獲取到所使用資料的驅動jar包,比如Oracle,在安裝好Oracle11g桌面版後,其已經自帶了orcale的jdbc了。我的電腦在安裝目錄:C:\app\youmingke\product\11.2.0\dbhome_1\jdbc\lib,下面有ojdbc5

資料庫SQL實踐35:批量插入資料不使用replace操作

思路: SQLite如果不存在則插入,如果存在則忽略 INSERT OR IGNORE INTO tablename VALUES(...); 如果不存在則插入,如果存在則替換 INSERT OR REPLACE INTO tablename VALUES(...); 這裡指的存

JDBC操作----執行資料庫的 增刪改查 操作

      資料庫連線成功後,即可對資料庫進行具體的操作 一、執行資料庫資料的插入操作        使用PreparedStatement介面執行資料庫資料的插入操作,程式碼如下 : import java.sql.

通過node操作mongodb資料庫使用mongoose實現新增資料

要點: 1.mongodb資料庫是區別於myserver等使用sql語句操作的關係型資料庫,它是非關係型的資料庫,他更加靈活但是越靈活就越不能處理大型專案,就像js和java。 2.基本的操作步驟如下:       一、通過cmd輸入mongo回車啟動資料庫

spring controller介面中pojo物件接收頁面傳遞的引數發現spring在對pojo物件賦值時有一定順序的問題

1、我的專案中的實體類都繼承了基類entityBase,裡面封裝了分頁的一些屬性,pageindex、pagesize、pagerownum等。 2、思路是頁面可以靈活的傳遞分頁引數,比如當前頁pageindex=1、每頁總數pagesize=6等靈活請求資料。然後可以根據當前頁pageindex的賦值,來

servlet入門:前端操作結合資料庫實現資料庫部門表單資料改功能

第一個完整的web probject,值得記錄下來的一點心得; 還是老規矩,不囉嗦,直接上程式碼; 第一部分:建立一個web project ,匯入jar包,配置檔案等; 配置檔案部分: <?xml version="1.0" encoding="UTF

python操作mysql資料庫pymysql

python裡操作mysql的模組是pymysql 一、安裝mysql 二、安裝pysql pip3 install pymysql 如果是在pycharm裡安裝pymysql模組,如圖進去安裝介面,搜尋pymysql然後安裝就行。 三、使用pymy

程式設計實現一個棧結構陣列來實現具有入棧、出棧操作

#include <stdio.h> #include <stdlib.h>typedef struct stack { int point;  signed char mem[1024];}STACK;STACK g_statck ={0}; //定

java操作Mogodb資料庫資料庫進行增刪查改!

首先,我們在windows下安裝mongodb資料庫,安裝教程檢視上一篇文章: 程式碼如下: package io.mogo; import java.util.Map; import org.apache.commons.lang3.StringUtils; im

建立一個物件陣列內放5個學生的資料(學號成績)指向物件的指標做函式引數在max函式中找出5個學生中成績最高者並輸出其學號。

原始碼如下:主要注意友元函式的宣告 #include <iostream> #include <string> using namespace std; class Student { public:     Student(string n,flo

JAVA通過JDBC操作MySQL資料庫(三):PreparedStatement介面操作資料庫

JAVA通過JDBC操作MySQL資料庫(三):PreparedStatement介面操作資料庫 Statement介面的問題 PreparedStatement介面操作資料庫 Statement介面的問題 在文章JAVA通過JDBC操作

JavaEE_ JDBC操作MySQL資料庫 (進階篇)

JDBC連線資料庫    •建立一個以JDBC連線資料庫的程式,包含7個步驟:     1、載入JDBC驅動程式:               在連線資料庫之前,首先要載入想要連線的資料庫的驅動到JVM(Java虛擬機器),     這通過java.lang.Clas

Java中通過JDBC操作MySQL資料庫

JDBC相關的操作 0、JDBC常用類和介面介紹 DriverManager類 DriverManager類用來管理資料庫中的所有驅動程式;是JDBC的管理層,作用於使用者和驅動程式之間,跟蹤可用的驅動程式,並在資料庫的驅動程式之間建立連線。此外,D