當前位置:首頁 » 數據倉庫 » 安卓訪問sql資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

安卓訪問sql資料庫

發布時間: 2022-12-22 09:10:45

Ⅰ android APP如何連接伺服器上的sql資料庫,直接在手機上查詢、更新資料庫信息

後台操作資料庫的增刪改查,然後寫成介面,android端來調用介面,返回數據顯示就ok了

Ⅱ android怎麼連接mysql資料庫

用Android程序去直連MySQL資料庫,覺得這樣做不好,出於安全等方面考慮。資料庫地址,用戶名密碼,查詢SQL什麼的都存在程序里,很容易被反編譯等方法看到。
建議把表示層和數據層邏輯分開,數據層對應網頁的表示層提供介面,同時在為Android手機端提供一個介面,簡介訪問資料庫,這介面可以2端都保持一致,比如XML+RPC或者json等等,Android端也有現成的東西能直接用,既安全又省事。

android 鏈接mysql資料庫實例:
package com.hl;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AndroidMsql extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
sqlCon();
}
});

}

private void mSetText(String str){
TextView txt=(TextView)findViewById(R.id.txt);
txt.setText(str);
}

private void sqlCon(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try {
String url ="jdbc:mysql://192.168.142.128:3306/mysql?user=zzfeihua&password=12345&useUnicode=true&characterEncoding=UTF-8";//鏈接資料庫語句
Connection conn= (Connection) DriverManager.getConnection(url); //鏈接資料庫
Statement stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user";//查詢user表語句
ResultSet rs=stmt.executeQuery(sql);//執行查詢
StringBuilder str=new StringBuilder();
while(rs.next()){
str.append(rs.getString(1)+"\n");
}
mSetText(str.toString());

rs.close();

Ⅲ android系統sqlite資料庫文件怎麼打開

工具/原料

SQLite Expert Professional
方法/步驟

安裝SQLite Expert Professional 可以在網上下載,我下載的是試用版,沒有找注冊碼,但是試用不影響使用,反正用幾次查看到資料庫操作沒有錯誤就不用這個工具了。當然也可以使用Eclipse插件DDMS來查看,也可以使用Android工具包中的adb工具來查看。android項目中的sqlite資料庫位於/data/data/項目包/databases中。先介紹使用DDMS導出sqlite資料庫的操作和使用adb工具訪問sqlite資料庫。
首先打開android項目的調試模式,然後找到顯示DDMS

切換到DDMS,顯示File Explorer窗口,找到/data/data/ 如下圖1 ,
然後找到程序包的文件夾,打開databases,就能看到sqlite資料庫文件了。選擇將其導出。如下圖2.
這樣就把sqlite資料庫文件以文件的方式導出來了,然後使用sqlite界面管理工具如SQLite Expert Professional可以打開該資料庫了。其他 sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager也可以打開該資料庫。

使用adb工具訪問sqlite資料庫
Android Debug Bridge(ADB)是Android的一個通用調試工具,它可以更新設備或模擬器中的代碼,可以管理預定埠,可以在設備上運行shell命令,我們 知道android是基於Linux內核,它的內部文件結構也是採用linux文件組織方式,因此訪問它的文件結構需要使用shell。這次我們就會用 shell來訪問android應用中的sqlite資料庫文件。
1、運行cmd,切換到android-sdk目錄,運行adb.exe,加上參數shell,出現#號就代表進入了shell命令模式,注意adb要在Android模擬器運行時才能進入shell:如下圖

進入資料庫所在目錄:
shell命令記住兩個基本命令ls和cd,類似windows命令提示行中的dir和cd,代表列出當前目錄下文件列表和進入到指定目錄。了解這兩個命令之後,就可以找到data/data/項目包名/databases 如下圖1, 找到資料庫文件如下圖2。

使用sqlite管理工具來進行資料庫操作
鍵入sqlite3 資料庫名就進入了sqlite管理模式了。
如下圖

設置sqlite環境變數:
在android的sdk中自帶了sqlite3.exe,這是sqlite的官方管理工具,它是一個命令行工具。為了使用方便,將其路徑注冊到系 統環境變數path中,即將;%Android_Home%加在Path中,這樣只樣運行sqlite3,就能直接打開sqlite管理工具了。
如下圖:

使用sqlite管理資料庫:
sqlite命令行工具默認是以;結束語句的。所以如果只是一行語句,要在末尾加;,或者在下一行中鍵入;,這樣sqlite命令才會被執行。
sqlite常用命令:
.tables--查看資料庫的表列表
.exit--退出sqlite命令行
其他命令可隨時.help查看幫助。sql命令可直接在此命令行上執行即可:
如下圖:

Ⅳ 用web service方法使android連接到SQL sever的具體代碼

1.可以改用SQL Server身份驗證方式。在安全性-登錄名中添加一個SQL Server身份驗證方式登錄的用戶。


C#的代碼裡面資料庫連接字元串還是粘貼屬性裡面的連接字元串,把密碼改成自己的密碼。
private String ConServerStr = "Data Source=2013-20160523DL;Initial Catalog=test;User ID=houjingyi;Password=*******";
2.一定要先在webservice裡面確認對資料庫的操作沒有問題,再去調android程序。只看到頁面出來了很可能資料庫連接有問題,這樣即使android程序沒問題也調不出來。
3.android4.0以後不允許在主線程中訪問網路,因為萬一主線程阻塞了,會使得界面沒有響應。我們開啟線程訪問即可。

[java]view plain

  • publicList<HashMap<String,String>>getAllInfo(finalHandlermyhandler)

  • {

  • HashMap<String,String>tempHash=newHashMap<String,String>();

  • List<HashMap<String,String>>list=newArrayList<HashMap<String,String>>();

  • tempHash.put("Cno","Cno");

  • tempHash.put("Cname","Cname");

  • tempHash.put("Cnum","Cnum");

  • list.clear();

  • arrayList1.clear();

  • arrayList2.clear();

  • arrayList3.clear();

  • list.add(tempHash);

  • newThread()

  • {

  • publicvoidrun()

  • {

  • arrayList1=Soap.GetWebServer("selectAllCargoInfor",arrayList1,arrayList2);

  • Messagemsg=newMessage();

  • msg.what=0x123;

  • msg.obj=arrayList1;

  • myhandler.sendMessage(msg);

  • }

  • }.start();

  • returnlist;

  • }

  • publicvoidinsertCargoInfo(StringCname,StringCnum)

  • {

  • arrayList1.clear();

  • arrayList2.clear();

  • arrayList1.add("Cname");

  • arrayList1.add("Cnum");

  • arrayList2.add(Cname);

  • arrayList2.add(Cnum);

  • newThread()

  • {

  • publicvoidrun()

  • {

  • try

  • {

  • Soap.GetWebServer("insertCargoInfo",arrayList1,arrayList2);

  • }

  • catch(Exceptione)

  • {

  • }

  • }

  • }.start();

  • }

  • publicvoiddeleteCargoInfo(StringCno)

  • {

  • arrayList1.clear();

  • arrayList2.clear();

  • arrayList1.add("Cno");

  • arrayList2.add(Cno);

  • newThread()

  • {

  • publicvoidrun()

  • {

  • try

  • {

  • Soap.GetWebServer("deleteCargoInfo",arrayList1,arrayList2);

  • }

  • catch(Exceptione)

  • {

  • }

  • }

  • }.start();

  • }

  • 4.android4.0以後子線程里是不能對主線程的UI進行改變的,因此就引出了Handler。主線程里定義Handler供子線程里使用。
  • [java]view plain

  • finalHandlermyhandler=newHandler()

  • {

  • publicvoidhandleMessage(Messagemsg)

  • {

  • if(msg.what==0x123)

  • {

  • ArrayList<String>drrayList=(ArrayList<String>)msg.obj;

  • for(intj=0;!drrayList.isEmpty()&&j+2<drrayList.size();j+=3)

  • {

  • HashMap<String,String>hashMap=newHashMap<String,String>();

  • hashMap.put("Cno",drrayList.get(j));

  • hashMap.put("Cname",drrayList.get(j+1));

  • hashMap.put("Cnum",drrayList.get(j+2));

  • list.add(hashMap);

  • }

  • adapter=newSimpleAdapter(

  • MainActivity.this,list,

  • R.layout.adapter_item,

  • newString[]{"Cno","Cname","Cnum"},

  • newint[]{R.id.txt_Cno,R.id.txt_Cname,R.id.txt_Cnum});

  • listView.setAdapter(adapter);

  • }

  • }

  • };

Ⅳ android 如何訪問asp.net做後台的SQL Server資料庫

android沒法直接連接SQLServer,起碼我沒有發現方法,想想看,sqlserver安裝之後有多大,android程序是跑在手機上的,想讓程序直接訪問sqlserver,那手機要多大的內存?當然你可以通過一個「橋梁」——webservice來間接訪問SQLServer的,網上有這樣的實例。當然還有其他方法,感興趣的同學可以自行網路。

Ⅵ android怎麼鏈接資料庫mysql

有點多請耐心看完。
希望能幫助你,還請及時採納謝謝。
一.前言

android連接資料庫的方式有兩種,第一種是通過連接伺服器,再由伺服器讀取資料庫來實現數據的增刪改查,這也是我們常用的方式。第二種方式是android直接連接資料庫,這種方式非常耗手機內存,而且容易被反編譯造成安全隱患,所以在實際項目中不推薦使用。

二.准備工作

1.載入外部jar包

在Android工程中要使用jdbc的話,要導入jdbc的外部jar包,因為在Java的jdk中並沒有jdbc的api,我使用的jar包是mysql-connector-java-5.1.18-bin.jar包,網路上有使用mysql-connector-java-5.1.18-bin.jar包的,自己去用的時候發現不兼容,所以下載了比較新版本的,jar包可以去官網下載,也可以去網路,有很多前人們上傳的。

2.導入jar包的方式

方式一:

可以在項目的build.gradle文件中直接添加如下語句導入

compile files('libs/mysql-connector-java-5.1.18-bin.jar')
方式二:下載jar包復制到項目的libs目錄下,然後右鍵復制過來的jar包Add as libs

三.建立資料庫連接

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jdbc);
new Thread(runnable).start();
}

Handler myHandler=new Handler(){

public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Bundle data=new Bundle();
data=msg.getData();

//System.out.println("id:"+data.get("id").toString()); //輸出第n行,列名為「id」的值
Log.e("TAG","id:"+data.get("id").toString());
TextView tv= (TextView) findViewById(R.id.jdbc);

//System.out.println("content:"+data.get("content").toString());
}
};

Runnable runnable=new Runnable() {
private Connection con = null;

@Override
public void run() {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
//引用代碼此處需要修改,address為數據IP,Port為埠號,DBName為數據名稱,UserName為資料庫登錄賬戶,Password為資料庫登錄密碼
con =
//DriverManager.getConnection("jdbc:mysql://192.168.1.202:3306/b2b", "root", "");
DriverManager.getConnection("jdbc:mysql://http://192.168.1.100/phpmyadmin/index.php:8086/b2b",
UserName,Password);

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
testConnection(con); //測試資料庫連接
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void testConnection(Connection con1) throws java.sql.SQLException {
try {
String sql = "select * from ecs_users"; //查詢表名為「oner_alarm」的所有內容
Statement stmt = con1.createStatement(); //創建Statement
ResultSet rs = stmt.executeQuery(sql); //ResultSet類似Cursor

//<code>ResultSet</code>最初指向第一行
Bundle bundle=new Bundle();
while (rs.next()) {
bundle.clear();
bundle.putString("id",rs.getString("userid"));
//bundle.putString("content",rs.getString("content"));
Message msg=new Message();
msg.setData(bundle);
myHandler.sendMessage(msg);
}

rs.close();
stmt.close();
} catch (SQLException e) {

} finally {
if (con1 != null)
try {
con1.close();
} catch (SQLException e) {}
}
}
};

注意:

在Android4.0之後,不允許在主線程中進行比較耗時的操作(連接資料庫就屬於比較耗時的操作),需要開一個新的線程來處理這種耗時的操作,沒新線程時,一直就是程序直接退出,開了一個新線程處理直接,就沒問題了。

當然,連接資料庫是需要網路的,千萬別忘了添加訪問網路許可權:

<uses-permission android:name=」android.permission.INTERNET」/>

四.bug點

1.導入的jar包一定要正確

2.連接資料庫一定要開啟新線程

3.資料庫的IP一定要是可以ping通的,區域網地址手機是訪問不了的

4.資料庫所在的伺服器是否開了防火牆,阻止了訪問
————————————————
版權聲明:本文為CSDN博主「shuaiyou_comon」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/shuaiyou_comon/article/details/75647355

Ⅶ android如何訪問SQL資料庫

只能訪問內部資料庫sqlite。常用的做法是用WebService來做網路資料庫連接,Android通過Http來訪問WebService,然後WebService提供對資料庫的相關操作。這樣就間接的實現了以Android操作管理SQL Server 資料庫。希望對你有所啟發或幫助,祝愉快!

Ⅷ Android 開發。。。如何連接到伺服器上的mysql資料庫

1、打開Tableau軟體。

Ⅸ android系統能用sql server資料庫嗎

不能,可以通過WebService獲取伺服器的數據,伺服器可以用Sql
Server這是肯定的,而Android應用可以在本地使用那個小型的資料庫SQLite
我目前的做法是通過WebService訪問伺服器,把某些數據保存到SQLite,Android應用操作SQLite數據

Ⅹ android怎麼連接sqlite資料庫

SQLite 一個非常流行的嵌入式資料庫,它支持 SQL 語言,並且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite.

Android 開發中使用 SQLite 資料庫
Activites 可以通過 Content Provider 或者 Service 訪問一個資料庫。下面會詳細講解如果創建資料庫,添加數據和查詢資料庫。
創建資料庫
Android 不自動提供資料庫。在 Android 應用程序中使用 SQLite,必須自己創建資料庫,然後創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個資料庫,你只要繼承 SQLiteOpenHelper 類,就可以輕松的創建資料庫。SQLiteOpenHelper 類根據開發應用程序的需要,封裝了創建和更新資料庫使用的邏輯。SQLiteOpenHelper 的子類,至少需要實現三個方法:
構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),資料庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的資料庫模型版本的整數。
onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。
onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個資料庫從舊的模型轉變到新的模型。