Android使用JTDS連接服務器SqlServer數據庫

此文章介紹Android應用中如何連接服務器上的SqlServer數據庫。

1. 下載JTDS

2. 引入JDTS到工程中

  • 解壓jtds-1.3.1-dist.zip,復制jtds-1.3.1.jar文件到app/libs/jtds-1.3.1.jar中;
  • 右鍵jtds-1.3.1.jar,選擇Add As Library,將jar包引入到工程中;

3. 連接SqlServer

  • 定義連接url
    private val dbConnectUrl = "jdbc:jtds:sqlserver://IP地址:端口號/DB名稱;"
    
  • 定義數據庫連接用戶名和密碼
    private val user = "sa"
    private val password = "123456"
    
  • 連接數據庫
    Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();//在最初的時候加載,比如onCreate方法中
    runBlocking(Dispatchers.IO) { 
        con = DriverManager.getConnection(dbConnectUrl, user, password)
    }
    

4. 增

使用executeUpdate進行新增,并接收受影響行數。
注意:不可以在主線程執行。

val sbContent = StringBuilder()
runBlocking {
  val result = async(Dispatchers.IO) {
      val stmt = con?.createStatement()
      val sql = "INSERT INTO T_Test VALUES('王三','男','一年級一班',99)"
      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 T_Test 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 T_Test SET Score=90.15 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 TOP 20 * FROM T_Test "
        val result = stmt?.executeQuery(sql)
        while (result?.next() == true) {

            sbContent.append(result.getString(1)).append(",").append(result.getString(2))
                .append(",").append(result.getString(3)).append(",").append(result.getString(4))
                .append(",").append(result.getString(5))
                .append(",\n")
        }
        sbContent.toString()
    }
    result.await()
    // 輸出查詢內容 
}

8. 附

源碼:點擊下載

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容