Android使用JDBC连接Oracle数据库

2022-12-23  本文已影响0人  天天小志

此文章介绍Android应用中如何连接服务器上的Oracle数据库。

注意:Oracle和sqlserver不同在于,操作数据库的SQL语句,对于表的操作要加上数据库.表名,如要查询TEST数据库下的T_USER_TEMP表,应写成select * from TEST.T_USER_TEMP

1. 下载jar包

Android使用官网下载的版本,均无法匹配,一直报错缺少类,最终使用了网上的一个版本,连接可正常(10.2.0.1.0,官网找不到此版本了,应该是比较旧了)

2. 引入JDTS到工程中

3. 连接Oracle

4. 增

使用executeUpdate进行新增,并接收受影响行数。
注意:不可以在主线程执行。

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("插入数据结果===")
           .append(result.await())
}

5. 删

使用executeUpdate进行删除,并接收受影响行数。
注意:不可以在主线程执行。

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("删除数据结果===")
   .append(result.await())
}

6. 改

使用executeUpdate进行修改,并接收受影响行数。
注意:不可以在主线程执行。

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("更新数据结果===")
   .append(result.await())
}

7. 查

使用executeQuery查询数据,并接收受影响行数。
注意:不可以在主线程执行。

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对应表中的第一列内容
                    sbContent.append(result.getString(1)).append(",").append(result.getString(2))
                        .append(",\n")
                }
        sbContent.toString()
    }
    result.await()
    // 输出查询内容 
}

8. 附

源码:点击下载

上一篇 下一篇

猜你喜欢

热点阅读