Android使用JDBC連接Oracle數(shù)據(jù)庫

此文章介紹Android應(yīng)用中如何連接服務(wù)器上的Oracle數(shù)據(jù)庫么介。

注意:Oracle和sqlserver不同在于,操作數(shù)據(jù)庫的SQL語句,對于表的操作要加上數(shù)據(jù)庫.表名,如要查詢TEST數(shù)據(jù)庫下的T_USER_TEMP表核行,應(yīng)寫成select * from TEST.T_USER_TEMP

1. 下載jar包

Android使用官網(wǎng)下載的版本绵脯,均無法匹配妙黍,一直報錯缺少類,最終使用了網(wǎng)上的一個版本浇借,連接可正常(10.2.0.1.0肉康,官網(wǎng)找不到此版本了,應(yīng)該是比較舊了)

2. 引入JDTS到工程中

  • 復(fù)制ojdbc14.jar文件到app/libs/jtds-1.3.1.jar中筐摘;
  • 右鍵ojdbc14.jar柳畔,選擇Add As Library罗捎,將jar包引入到工程中捉偏;

3. 連接Oracle

  • 定義連接url
    private val dbConnectUrl = "jdbc:oracle:thin:@IP地址:端口號:服務(wù)名"
    
  • 定義數(shù)據(jù)庫連接用戶名和密碼
    private val user = "test"
    private val password = "123456"
    
  • 連接數(shù)據(jù)庫
    Class.forName ("oracle.jdbc.driver.OracleDriver");//在最初的時候加載挤巡,比如onCreate方法中
    runBlocking(Dispatchers.IO) { 
        con = DriverManager.getConnection(dbConnectUrl, user, password)//需要執(zhí)行在非主線程中
    }
    

4. 增

使用executeUpdate進(jìn)行新增母廷,并接收受影響行數(shù)。
注意:不可以在主線程執(zhí)行。

val sbContent = StringBuilder()
runBlocking {
val result = async(Dispatchers.IO) {
   val stmt = con?.createStatement()
   val sql = "INSERT INTO TEST.T_USER_TEMP VALUES(100,'旺旺',15)"
   try {
       val result = stmt?.executeUpdate(sql) as Int
       result > 0
   } catch (e: Exception) {
       false
   }
}
sbContent.append("插入數(shù)據(jù)結(jié)果===")
           .append(result.await())
}

5. 刪

使用executeUpdate進(jìn)行刪除沥割,并接收受影響行數(shù)。
注意:不可以在主線程執(zhí)行。

val sbContent = StringBuilder()
runBlocking {
val result = async(Dispatchers.IO) {
   val stmt = con?.createStatement()
   val sql = "delete from TEST.T_USER_TEMP where Name='旺旺'"
   try {
       val result = stmt?.executeUpdate(sql) as Int
       result > 0
   } catch (e: Exception) {
       false
   }
}
sbContent.append("刪除數(shù)據(jù)結(jié)果===")
   .append(result.await())
}

6. 改

使用executeUpdate進(jìn)行修改,并接收受影響行數(shù)耻陕。
注意:不可以在主線程執(zhí)行岛心。

val sbContent = StringBuilder()
runBlocking {
val result = async(Dispatchers.IO) {
   val stmt = con?.createStatement()
   val sql = "UPDATE TEST.T_USER_TEMP SET AGE=20 where Name='旺旺'"
   try {
       val result = stmt?.executeUpdate(sql) as Int
       result > 0
   } catch (e: SQLException) {
       false
   }
}
sbContent.append("更新數(shù)據(jù)結(jié)果===")
   .append(result.await())
}

7. 查

使用executeQuery查詢數(shù)據(jù),并接收受影響行數(shù)。
注意:不可以在主線程執(zhí)行祭阀。

val sbContent = StringBuilder()
runBlocking {
    val result = async(Dispatchers.IO) {
        val stmt = con?.createStatement()
                val sql = "SELECT * FROM TEST.T_USER_TEMP"
                val result = stmt?.executeQuery(sql)
                while (result?.next() == true) {
                    //注意赢底,索引從1開始洽损,索引1對應(yīng)表中的第一列內(nèi)容
                    sbContent.append(result.getString(1)).append(",").append(result.getString(2))
                        .append(",\n")
                }
        sbContent.toString()
    }
    result.await()
    // 輸出查詢內(nèi)容 
}

8. 附

源碼:點擊下載

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末崖疤,一起剝皮案震驚了整個濱河市权烧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖券时,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件说搅,死亡現(xiàn)場離奇詭異适肠,居然都是意外死亡沸毁,警方通過查閱死者的電腦和手機(jī)疾掰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門履婉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苛茂,你說我怎么就攤上這事狸棍。” “怎么了味悄?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵草戈,是天一觀的道長。 經(jīng)常有香客問我侍瑟,道長唐片,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任涨颜,我火速辦了婚禮费韭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庭瑰。我一直安慰自己星持,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布弹灭。 她就那樣靜靜地躺著督暂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪穷吮。 梳的紋絲不亂的頭發(fā)上逻翁,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音捡鱼,去河邊找鬼八回。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缠诅。 我是一名探鬼主播溶浴,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼管引!你這毒婦竟也來了士败?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汉匙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后生蚁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噩翠,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年邦投,在試婚紗的時候發(fā)現(xiàn)自己被綠了伤锚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡志衣,死狀恐怖屯援,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情念脯,我是刑警寧澤狞洋,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站绿店,受9級特大地震影響吉懊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜假勿,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一借嗽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧转培,春花似錦恶导、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至删窒,卻和暖如春缤沦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背易稠。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工缸废, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓企量,卻偏偏與公主長得像测萎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子届巩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容