日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入了解Android數(shù)據(jù)庫操作詳解(android數(shù)據(jù)庫詳解)

隨著 Android 手機的普及,越來越多的應用程序需要使用數(shù)據(jù)庫來存儲和管理數(shù)據(jù)。而 Android 提供了一個輕量級的 SQLite 數(shù)據(jù)庫,可以讓開發(fā)者方便地進行數(shù)據(jù)庫操作。本文將深入了解 Android 數(shù)據(jù)庫的操作,包括數(shù)據(jù)庫的創(chuàng)建和升級、表的創(chuàng)建和刪除、數(shù)據(jù)的插入和查詢等。

10年積累的成都網(wǎng)站建設、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有本溪免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

一、數(shù)據(jù)庫的創(chuàng)建與升級

SQLite 數(shù)據(jù)庫是 Android 系統(tǒng)中內(nèi)置的一種嵌入式數(shù)據(jù)庫,開發(fā)者可以在應用程序中方便地創(chuàng)建和使用它。在使用 SQLite 數(shù)據(jù)庫之前,需要先創(chuàng)建一個數(shù)據(jù)庫。下面是創(chuàng)建數(shù)據(jù)庫的代碼:

“`

public static final String DB_NAME = “my_db”;

public static final int DB_VERSION = 1;

public DatabaseHelper(Context context) {

super(context, DB_NAME, null, DB_VERSION);

}

“`

上面的代碼定義了一個名為“my_db”、版本號為 1 的數(shù)據(jù)庫,通過繼承 SQLiteOpenHelper 實現(xiàn)創(chuàng)建和升級數(shù)據(jù)庫的操作。在創(chuàng)建完數(shù)據(jù)庫之后,就可以在應用程序中使用它了。

如果需要升級數(shù)據(jù)庫,可以通過在 onUpgrade() 方法中修改數(shù)據(jù)庫表結(jié)構(gòu)來實現(xiàn)。例如下面的代碼實現(xiàn)了從版本 1 升級到版本 2 并添加了一個新的表:

“`

public static final int DB_VERSION = 2;

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

if (oldVersion

db.execSQL(“CREATE TABLE new_table (id INTEGER PRIMARY KEY AUTOINCREMENT, value TEXT)”);

}

}

“`

在 onUpgrade() 方法中,首先判斷原數(shù)據(jù)庫的版本號是否小于 2,如果是則執(zhí)行創(chuàng)建新表的 SQL 語句。在 Android 中,數(shù)據(jù)庫的升級一般是通過增加版本號來實現(xiàn)的。

二、表的創(chuàng)建與刪除

在創(chuàng)建完數(shù)據(jù)庫之后,下一步就是創(chuàng)建表格??梢酝ㄟ^執(zhí)行 SQL 語句來創(chuàng)建表格,例如下面的代碼創(chuàng)建了一個名為“my_table”的表格:

“`

public static final String TABLE_NAME = “my_table”;

public static final String ID_COLUMN = “id”;

public static final String NAME_COLUMN = “name”;

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(“CREATE TABLE ” + TABLE_NAME + ” (” + ID_COLUMN + ” INTEGER PRIMARY KEY AUTOINCREMENT, ” + NAME_COLUMN + ” TEXT)”);

}

“`

上面的代碼創(chuàng)建了一個包含 id 和 name 兩個字段的表格,其中 id 是主鍵并自動遞增。通過類似的語句可以創(chuàng)建具有不同字段和約束條件的表格。

除了創(chuàng)建表格,還可以通過 SQL 語句來刪除表格,例如下面的代碼刪除了名為“my_table”的表格:

“`

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

if (oldVersion

db.execSQL(“DROP TABLE IF EXISTS ” + TABLE_NAME);

}

}

“`

在升級數(shù)據(jù)庫的操作中,如果要刪除表格需要先判斷該表格是否存在。可通過“DROP TABLE IF EXISTS”語句實現(xiàn)刪除操作。在刪除表格之前,需要把表格中的數(shù)據(jù)備份到其他位置以免數(shù)據(jù)丟失。

三、數(shù)據(jù)的插入與查詢

在創(chuàng)建表格之后,下一步就是對表格進行操作。常見的操作有數(shù)據(jù)的插入、刪除、修改和查詢。本節(jié)討論數(shù)據(jù)的插入和查詢操作。

1、數(shù)據(jù)的插入

向表格中插入數(shù)據(jù),可以使用 insert() 方法。例如下面的代碼向名為“my_table”的表格插入一行數(shù)據(jù):

“`

ContentValues values = new ContentValues();

values.put(NAME_COLUMN, “test_name”);

long newRowId = db.insert(TABLE_NAME, null, values);

“`

上面的代碼中,首先用 ContentValues 對象封裝數(shù)據(jù),然后調(diào)用 insert() 方法向表格中插入該數(shù)據(jù)。insert() 方法返回一個表示新行 id 的值,表示該數(shù)據(jù)所在行的 id 值,可以用于后續(xù)的操作。

2、數(shù)據(jù)的查詢

查詢表格中的數(shù)據(jù),可以使用 query() 方法。例如下面的代碼查詢名為“my_table”的表格中所有數(shù)據(jù):

“`

String[] projection = {ID_COLUMN, NAME_COLUMN};

String sortOrder = ID_COLUMN + ” DESC”;

Cursor cursor = db.query(TABLE_NAME, projection, null, null, null, null, sortOrder);

while (cursor.moveToNext()) {

long id = cursor.getLong(cursor.getColumnIndexOrThrow(ID_COLUMN));

String name = cursor.getString(cursor.getColumnIndexOrThrow(NAME_COLUMN));

}

cursor.close();

“`

上面的代碼中,首先定義了需要返回的字段數(shù)組和排序方式。然后調(diào)用 query() 方法查詢表格中的數(shù)據(jù),并將查詢結(jié)果封裝到 Cursor 對象中。從 Cursor 對象中可以逐行提取數(shù)據(jù)并進行處理。

四、

本文深入介紹了 Android 數(shù)據(jù)庫的操作,包括數(shù)據(jù)庫的創(chuàng)建和升級、表格的創(chuàng)建和刪除、數(shù)據(jù)的插入和查詢等。掌握了這些操作之后,開發(fā)者就能夠方便地使用 SQLite 數(shù)據(jù)庫來存儲和管理 App 的數(shù)據(jù)了。當然,實際應用場景下,還需要根據(jù)不同的需求進行具體的設計和實現(xiàn)。

相關(guān)問題拓展閱讀:

  • android怎么鏈接數(shù)據(jù)庫mysql
  • 請簡要描述Android中數(shù)據(jù)庫操作的一般步驟

android怎么鏈接數(shù)據(jù)庫mysql

有點多請耐心看完。

希望能幫助你,還請及時采納謝謝。

一.前言

android連接數(shù)據(jù)庫的方式有兩種,之一種是通過連接服務器,再由服務器讀取數(shù)據(jù)庫來實現(xiàn)數(shù)據(jù)的增刪改查,這也是我們常用的方式。第二種方式是android直接連接數(shù)據(jù)庫,這種方式非常耗手機內(nèi)存,而且容易被

反編譯

造成

安全隱患

,所以在實際項目中不推薦使用。

二.準備工作

1.加載外部jar包

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

2.導入jar包的方式

方式一:

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

compile files(‘libs/mysql-connector-java-5.1.18-bin.jar’)

方式二:下載jar包復制到項目的libs目錄下,然后右鍵復制過來的jar包Add as libs

三.建立數(shù)據(jù)庫連接

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為數(shù)據(jù)IP,Port為

端口號

,DBName為數(shù)據(jù)名稱,UserName為數(shù)據(jù)庫登錄賬戶,Password為數(shù)據(jù)庫登錄密碼

con =

//DriverManager.getConnection(“jdbc: “root”, “”);

DriverManager.getConnection(“jdbc:

“,

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); //測試數(shù)據(jù)庫連接

} 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”的所有內(nèi)容

Statement stmt = con1.createStatement();//創(chuàng)建Statement

ResultSet rs = stmt.executeQuery(sql);//ResultSet類似Cursor

//ResultSet最初指向之一行

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之后,不允許在主

線程

中進行比較耗時的操作(連接數(shù)據(jù)庫就屬于比較耗時的操作),需要開一個新的線程來處理這種耗時的操作,沒新線程時,一直就是程序直接退出,開了一個新線程處理直接,就沒問題了。

當然,連接數(shù)據(jù)庫是需要網(wǎng)絡的,千萬別忘了添加訪問網(wǎng)絡權(quán)限:

四.bu

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

2.連接數(shù)據(jù)庫一定要開啟新線程

3.數(shù)據(jù)庫的IP一定要是可以ping通的,局域網(wǎng)地址手機是訪問不了的

4.數(shù)據(jù)庫所在的服務器是否開了防火墻,阻止了訪問

————————————————

版權(quán)聲明:本文為CSDN博主「shuaiyou_comon」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:

請簡要描述Android中數(shù)據(jù)庫操作的一般步驟

這個建議先把 SqliteOpenHelper 這個數(shù)據(jù)庫 操作類 看看 你就懂了

關(guān)于android 數(shù)據(jù)庫詳解的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)網(wǎng)絡推廣網(wǎng)站建設,網(wǎng)站設計,網(wǎng)站建設公司,網(wǎng)站制作,網(wǎng)頁設計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務,聯(lián)系電話:13518219792


名稱欄目:深入了解Android數(shù)據(jù)庫操作詳解(android數(shù)據(jù)庫詳解)
瀏覽路徑:http://www.5511xx.com/article/dhdjgdh.html