java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例
本文主要介紹了java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例,分享給大家,具體如下:
package com.shiwusuo.ReadHdfsToClickHouse.gauss
import java.sql.{Connection, DriverManager}
import java.util.Properties
import org.apache.spark.sql.DataFrame
import scala.collection.mutable.ArrayBuffer;
object GaussDBUtils {
val urls = application.gaussURL //數(shù)據(jù)庫URL
val username = application.gaussName //用戶名
val password = application.gaussPass //密碼
val database = application.gaussDatabase
val gaussCreateDatabase = application.gaussCreateDatabase
//val driver = "org.postgresql.Driver"
val driver = application.driver
var conn: Connection = null;
def getConnection(): Connection = {
try {
Class.forName(driver)
conn = DriverManager.getConnection(urls, username, password)
conn
} catch {
case e: Throwable => e.printStackTrace()
println("連接gaussDB失敗===請檢查原因")
conn
}
}
//創(chuàng)建表
def createGaussTable(sql: String): Unit = {
try {
val connection = getConnection()
val statement = connection.createStatement()
statement.executeUpdate(sql)
statement.close()
} catch {
case e: Exception =>
e.printStackTrace()
}
}
//判斷是否存在該表
def tableExists(database: String, tablName: String): Boolean = {
val connection = getConnection()
val set = connection.getMetaData.getTables(null, database, tablName, null)
if (set.next()) {
return true
} else {
println("gaussDB中" + tablName + "不存在")
return false
}
}
//創(chuàng)建數(shù)據(jù)庫
def createDatabase(): Unit = {
val connection = getConnection()
val statement = connection.createStatement()
statement.executeUpdate(gaussCreateDatabase)
statement.close()
}
//查詢 、執(zhí)行sql語句
def ReadFromGaussDB(sql: String): Unit = {
try {
val connection = getConnection()
val statement = connection.createStatement()
val set = statement.executeQuery(sql)
while (set.next()) {
val str = set.getString(2)
println(str)
}
}catch {
case e: Exception =>
e.printStackTrace()
}
}
//獲取gaussDB中所有表名
def getTablesByGaussDB(db: String) :ArrayBuffer[String]={
val tablesList = new ArrayBuffer[String]()
val connection = getConnection()
val set = connection.getMetaData.getTables(null,db,null,null)
while (set.next()) {
val str: String = set.getString("TABLE_NAME")
tablesList += str
// println(str)
}
tablesList
}
//根據(jù)resourceId刪除gaussDB數(shù)據(jù)
def deleteDataByResourceId(sql:String): Unit ={
val connection = getConnection()
val statement = connection.createStatement()
statement.executeUpdate(sql)
}
//插入gaussDB庫中
def insertgaussDBTable(table: String, df: DataFrame): Unit = {
val connectionProperties = new Properties()
connectionProperties.setProperty("user", username)
connectionProperties.setProperty("password", password)
println("+++++++開始寫入GaussDB++++++" + table + "共有" + df.count())
df.write.mode("append").option("batchsize", "50000").option("isolationLevel", "NONE").
option("numPartitions", "1").jdbc(urls, table, connectionProperties)
println("=================GaussDB完成寫入========" + table + "====================")
}
def main(args: Array[String]): Unit = {
//val bool = tableExists("gaussdb","test_01087")
//println(bool)
//val a = "CREATE TABLE gaussdb.CDPCP\n (\n code bigint NULL,\n ident bigint NULL,\n len bigint NULL,\n lineNum1 bigint NULL,\n lineNum2 bigint NULL,\n lineNum3 bigint NULL,\n lineNum4 bigint NULL,\n lineName varchar(10000000) NULL,\n begTime bigint NULL,\n endTime bigint NULL,\n comDur bigint NULL,\n meanID varchar(10000000) NULL,\n siteID varchar(10000000) NULL,\n unitID varchar(10000000) NULL,\n taskID varchar(10000000) NULL,\n guid bigint NULL,\n storTime bigint NULL,\n mdSecDeg varchar(10000000) NULL,\n fileSecDeg varchar(10000000) NULL,\n secDegPro varchar(10000000) NULL,\n ipVer bigint NULL,\n srcAddr varchar(10000000) NULL,\n dstAddr varchar(10000000) NULL,\n srcPort bigint NULL,\n dstPort bigint NULL,\n protNum bigint NULL,\n srcAddrV6 varchar(10000000) NULL,\n dstAddrV6 varchar(10000000) NULL,\n srcLoc varchar(10000000) NULL,\n dstLoc varchar(10000000) NULL,\n srcISP varchar(10000000) NULL,\n dstISP varchar(10000000) NULL,\n srcAS varchar(10000000) NULL,\n dstAS varchar(10000000) NULL,\n protInfo varchar(10000000) NULL,\n linkInfo varchar(10000000) NULL,\n protType varchar(10000000) NULL,\n protName varchar(10000000) NULL,\n mulRouFlag bigint NULL,\n intFlag bigint NULL,\n strDirec bigint NULL,\n pktNum bigint NULL,\n payLen bigint NULL,\n hashId bigint NULL,\n sessionID varchar(10000000) NULL,\n resourceId varchar(10000000) NULL\n )"
//createGaussTable(a)
//createtable
// ReadFromGaussDB("select * from test_0110.user")
//val strings = getTablesByGaussDB("test_0301")
//strings.foreach(println)
//DELETE FROM test_0110.AOE WHERE resourceId = 518824231216091205
val b ="DELETE FROM test_0110.\"ANS\" WHERE \"resourceId\" = '518824231216091205'"
println(b)
deleteDataByResourceId(b)
}
}
到此這篇關(guān)于java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)java操作gaussDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
劍指Offer之Java算法習題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化2022-03-03
JavaWeb 網(wǎng)上書店 注冊和登陸功能案例詳解
這篇文章主要介紹了JavaWeb 網(wǎng)上書店 注冊和登陸功能,結(jié)合具體案例形式詳細分析了JavaWeb 網(wǎng)上書店 注冊和登陸功能具體實現(xiàn)步驟、操作技巧與注意事項,需要的朋友可以參考下2019-08-08
Java HttpURLConnection超時和IO異常處理
這篇文章主要介紹了Java HttpURLConnection超時和IO異常處理的相關(guān)資料,需要的朋友可以參考下2016-09-09
Java使用Soap方式調(diào)用WebService接口代碼示例
Java調(diào)用WebService接口是指通過Java語言來訪問并與WebService進行交互,WebService是一種基于Web的服務架構(gòu),它通過標準的XML和HTTP協(xié)議來提供服務,這篇文章主要給大家介紹了關(guān)于Java使用Soap方式調(diào)用WebService接口的相關(guān)資料,需要的朋友可以參考下2024-03-03
Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù)
這篇文章主要為大家詳細介紹了Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Spring + Mybatis 項目實現(xiàn)動態(tài)切換數(shù)據(jù)源實例詳解
這篇文章主要介紹了Spring + Mybatis 項目實現(xiàn)動態(tài)切換數(shù)據(jù)源的相關(guān)資料,需要的朋友參考下吧2017-04-04

