請看一下下面的代碼,我使用第一段代碼,可以將遠程資料庫的資料讀出來,但是使用第二段代碼時,就無法讀取遠程資料庫代碼,只能列印出“查詢成功”,下面的代碼好像不執行了。(使用的studio軟體--kotlin)
這是第一段代碼,執行結果在下面:
import kotlin.concurrent.thread
fun main (){
zhusuInOut1()
}
private fun zhusuInOut1(){
val queryInList1 = ArrayList<String>()
try {
thread {
val conn = DBUtil().conection()
try {
val sql1 = "SELECT * FROM zhusuintable where name ='75g' and color ='無' "
// 創建用來執行sql陳述句的物件
//val statement: Statement = conn!!.createStatement()
val preparedStatement = conn!!.prepareStatement(sql1)
// 執行sql查詢陳述句并獲取查詢資訊
//val rSet1: ResultSet = statement.executeQuery(sql1)
val resultSet = preparedStatement.executeQuery()
println("查詢成功")
while (resultSet.next()){
val tile1 = resultSet.getString("shuliang")
queryInList1.add(tile1)
println("查詢資料加入集合成功")
for (i in queryInList1){
println(i)
}
}
}catch (e:Exception){
e.printStackTrace()
}
}
}catch (e:Exception){
e.printStackTrace()
}
}
第一段代碼的執行結果如下:
查詢成功
查詢資料加入集合成功
5622
查詢資料加入集合成功
5622
2314
這是第二段代碼,執行結果在底下:
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.query_in_out_layout.*
import kotlinx.android.synthetic.main.super_manager_layout.toolbar
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
import kotlin.concurrent.thread
class TestInOut:BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.test_in_out)
setSupportActionBar(toolbar)
thread {
testQueryBtm.setOnClickListener {
try {
thread {
val conn = DBUtil().conection()
try {
val queryInList1 = ArrayList<String>()
val sql1 = "SELECT * FROM zhusuintable where name ='75g' and color ='無' "
// 創建用來執行sql陳述句的物件
val statement: Statement = conn!!.createStatement()
//val preparedStatement = conn!!.prepareStatement(sql1)
// 執行sql查詢陳述句并獲取查詢資訊
val rSet1: ResultSet = statement.executeQuery(sql1)
//val resultSet = preparedStatement.executeQuery()
println("查詢成功")
while (rSet1.next()) {
val find1 = rSet1.getString("shuliang")
queryInList1.add(find1)
println("查詢資料加入集合成功")
}
}catch (e:Exception){
e.printStackTrace()
}
try {
conn!!.close()
Log.d("QueryInOut", "關閉資料庫連接成功。")
} catch (e: SQLException) {
Log.d("QueryInOut", "關閉連接失敗。")
}
}
}catch (e:Exception){
e.printStackTrace()
}
}
}
}
private fun test11(){
}
}
上面的代碼執行如果如下:
D/BaseActivity: TestInOut
I/System.out: 查詢成功
D/QueryInOut: 關閉資料庫連接成功。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/241585.html
標籤:Android
上一篇:[求助]Activity切換問題
