Android使用JTDS连接服务器SqlServer数据库

内容分享2个月前发布
0 0 0

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

1. 下载JTDS

  • JDTS官网:点击打开
  • JDTS所有版本查看
    *目前最新版本为JDTS1.3.1版本,为2013年6月更新, JDTS1.3.1下载

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(",
")
        }
        sbContent.toString()
    }
    result.await()
    // 输出查询内容 
}

8. 附

源码:点击下载

© 版权声明

相关文章

暂无评论

none
暂无评论...