Android 連接網絡數據庫的方式


 

以連接MS SQL(sqlserver數據庫)的網絡數據庫為例,從當前搜集的資料來看,一共有兩種方式:在Android工程中引入JDBC驅動,直接連接;通過WebService等方法的間接連接。

采用JDBC方法主要問題是安全性不高,而且一旦要訪問的數據量過多,容易出問題。另外,Android系統本身有對json或者xml直接解析的api,所以建議采用第二種方法,實用性與安全性都提高了。

 

1 直接連接方式

1.1 使用jtds方法

jdts連接sql server數據庫有兩種方式:

第一種就是指定用戶和密碼;第二種就是windows系統賬戶。

兩種連接有什么不同呢?url不同,然后就是第二種不需要用戶名和密碼。

兩種url如下:

第一種:url="jdbc:jtds:sqlserver://10.253.66.19;database=Assess";

第二種:url="jdbc:jtds:sqlserver://10.253.66.19;database=Assess;integratedSecurity=true";

然后的代碼就差不多了:

Class.forName(DRIVER);

conn=DriverManager.getConnection(url,user_name, password);//第一種

//conn=DriverManager.getConnection(url;//第二種

System.out.println("connect success!");

但是僅僅做上面的工作是不夠的,我們還需要把jdtsntlmauth.dll文件copyjavabin目錄下。一般是copyjre/bin目錄下,但是我們在開發中通常會選擇jdk/bin目錄。所以保險的做法是兩個地方都copy到。

 

具體可操作如下:

 

  首先,需要下載jdts最新的Jar包 https://sourceforge.net/projects/jtds/

  然后,在工程目錄下,建立一個libs文件夾,把jtds的jar包拷貝進去。(據說android開發第三方jar文件必須放在libs目錄下,未經考證,不只真假);

  右鍵,選擇build path,添加到編譯目錄。這時會自動生成一個Referenced Libraries引用,這樣就OK了。

  最后,添加如下的測試代碼,運行測試。

 

 

 

package com.sundee.utility;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.util.Log;

public class DBHelper
{

        public static void Test()
        {
                try
                {
                        Class.forName("net.sourceforge.jtds.jdbc.Driver");
                        System.out.println("數據庫驅動成功");
                } catch (ClassNotFoundException e1)
                {
                        e1.printStackTrace();
                        System.out.println("加載數據庫引擎失敗");
                        Log.i("test", e1.getMessage());
                }
                

                try
                {

                        Connection con = DriverManager.getConnection(
                                        "jdbc:jtds:sqlserver://192.168.0.103:1433/201111RuiDiKe", "sa",
                                        "123456");
                        System.out.println("連接數據庫成功");
                        Statement stmt = con.createStatement();// 創建SQL命令對象

                        // 創建表
                        System.out.println("開始創建表");
                        String query = "create table stu(ID NCHAR(2),NAME NCHAR(10))";// 創建表SQL語句
                        stmt.executeUpdate(query);// 執行SQL命令對象
                        System.out.println("表創建成功");

                        // 輸入數據
                        System.out.println("開始插入數據");
                        String a1 = "INSERT INTO stu VALUES('1','嘻嘻')";// 插入數據SQL語句
                        String a2 = "INSERT INTO stu VALUES('2','哈哈')";
                        String a3 = "INSERT INTO stu VALUES('3','咳咳')";
                        stmt.executeUpdate(a1);// 執行SQL命令對象
                        stmt.executeUpdate(a2);
                        stmt.executeUpdate(a3);
                        System.out.println("插入數據成功");

                        // 讀取數據
                        System.out.println("開始讀取數據");
                        ResultSet rs = stmt.executeQuery("SELECT * FROM stu");// 返回SQL語句查詢結果集(集合)
                        // 循環輸出每一條記錄
                        while (rs.next())
                        {
                                // 輸出每個字段
                                System.out.println(rs.getString("ID") + "\t"
                                                + rs.getString("NAME"));
                        }
                        System.out.println("讀取完畢");

                        // 關閉連接
                        stmt.close();// 關閉命令對象連接
                        con.close();// 關閉數據庫連接
                } catch (SQLException e)
                {
                        e.printStackTrace();
                        System.out.println("數據庫連接錯誤");
                        
                }
        }
}

有關jdts的具體的查詢與應用,可參考文章[3,4]進行操作。

具體可參考文章[5]

 

 

2 通過WebService方式進行連接

2.1 樣例1

具體可參考文章【6,7】進行測試開發。

 

 

 

 

參考文章

1. mozartandroid 直連 sqlserver 2008 R2

3. chenyucong,  Android 連接 SQL Server (jtds方式)——下

4.荒野程序猿, 【Android解決方案】連接SQL Server

5. conowenAndroid學習筆記(21)————利用JDBC連接服務器數據庫

6. long_zhou316,  Android通過webservice連接SQLServer 詳細教程

7. Bottle,  Android實現訪問Sqlserver


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM