此文章介紹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(",\n")
}
sbContent.toString()
}
result.await()
// 輸出查詢內容
}
8. 附
源碼:點擊下載