`

Android中SQLiteDatabase的使用

阅读更多
链接http://aina-hk55hk.iteye.com/blog/698794
package com.Aina.Android;  
 
import android.app.Activity;  
import android.app.AlertDialog;  
import android.content.ContentValues;  
import android.content.DialogInterface;  
import android.database.Cursor;  
import android.database.sqlite.SQLiteDatabase;  
import android.os.Bundle;  
import android.widget.ListAdapter;  
import android.widget.ListView;  
import android.widget.SimpleCursorAdapter;  
 
public class Test extends Activity {  
    /** Called when the activity is first created. */ 
    private ListView lv = null;  
    private SQLiteDatabase mSQLiteDatabase = null;  
    private static final String DATABASE_NAME = "Test.db";  
    private static final String TABLE_NAME = "table_test";  
    private static final String COLUMN_ID = "_id";// INTEGER PRIMARY KEY  
    private static final String COLUMN_NAME = "name";// TEXT  
    private static final String COLUMN_AGE = "age";// INTEGER  
    private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " 
            + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY," 
            + COLUMN_NAME + " TEXT," + COLUMN_AGE + " INTEGER)";  
 
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        lv = (ListView) this.findViewById(R.id.ListView01);  
        try {  
            mSQLiteDatabase = this.openOrCreateDatabase(DATABASE_NAME,  
                    Activity.MODE_PRIVATE, null);  
        } catch (Exception ex) {  
            this.ShowDialog("打开或者创建数据库异常:" + ex.getMessage());  
        }  
        try {  
            mSQLiteDatabase.execSQL(CREATE_TABLE);  
        } catch (Exception ex) {  
            this.ShowDialog("创建表异常:" + ex.getMessage());  
        }  
        // this.InsertData();  
        // this.InsertData2();  
        // this.AddData();  
        // this.UpdateData();  
        // this.UpdateData2();  
        // this.UpdateData3();  
        // this.DeleteData();  
        // this.DeleteData2();  
        // this.DeleteData3();  
        this.SelectData();  
    }  
 
    @Override 
    protected void onPause() {        
        super.onPause();  
        mSQLiteDatabase.close();// 关闭数据库  
    }  
 
    /** 
     * 插入数据-execSQL 
     */ 
    private void InsertData() {  
        try {  
            String str = "INSERT INTO " + TABLE_NAME + " (" + COLUMN_NAME + "," 
                    + COLUMN_AGE + ")VALUES('张三',30)";  
            mSQLiteDatabase.execSQL(str);  
        } catch (Exception ex) {  
            this.ShowDialog("插入数据异常:" + ex.getMessage());  
        }  
 
    }  
 
    /** 
     * 插入数据-execSQL 
     */ 
    private void InsertData2() {  
        try {  
            String str = "INSERT INTO " + TABLE_NAME + " (" + COLUMN_NAME + "," 
                    + COLUMN_AGE + ")VALUES(?,?)";  
            Object[] ob = new Object[] { "王五", 50 };  
            mSQLiteDatabase.execSQL(str, ob);  
        } catch (Exception ex) {  
            this.ShowDialog("插入数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 插入数据-insert() nullColumnHack,这个参数需要传入一个列名。SQL标准并不允许插入所有列均为空的一行数据, 
     * 所以当传入的initialValues值为空或者为0时 
     * ,用nullColumnHack参数指定的列会被插入值为NULL的数据,然后再将此行插入到表中。 
     */ 
    private void AddData() {  
        try {  
            ContentValues cv = new ContentValues();  
            cv.put(COLUMN_NAME, "李四");  
            cv.put(COLUMN_AGE, 40);  
            // long num = mSQLiteDatabase.insert(TABLE_NAME, COLUMN_NAME, cv);  
            long num = mSQLiteDatabase.insertOrThrow(TABLE_NAME, null, cv);  
            this.setTitle("num==" + num);  
        } catch (Exception ex) {  
            this.ShowDialog("插入数据异常:" + ex.getMessage());  
        }  
 
    }  
 
    /** 
     * 更新数据 
     */ 
    private void UpdateData() {  
        try {  
            String str = "UPDATE " + TABLE_NAME + " SET " + COLUMN_AGE  
                    + " = 25 WHERE _id=1";  
            mSQLiteDatabase.execSQL(str);  
        } catch (Exception ex) {  
            this.ShowDialog("更新数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 更新数据 
     */ 
    private void UpdateData2() {  
        try {  
            String str = "UPDATE " + TABLE_NAME + " SET " + COLUMN_AGE  
                    + " = ? WHERE _id=?";  
            Object[] Ob = new Object[] { 33, 2 };  
            mSQLiteDatabase.execSQL(str, Ob);  
        } catch (Exception ex) {  
            this.ShowDialog("更新数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 更新数据 
     */ 
    private void UpdateData3() {  
        try {  
            ContentValues cv = new ContentValues();  
            cv.put(COLUMN_NAME, "李四4");  
            cv.put(COLUMN_AGE, 43);  
            int num = mSQLiteDatabase.update(TABLE_NAME, cv,  
                    COLUMN_NAME + "=?", new String[] { "李四" });  
            this.setTitle("修改行数num=" + num);  
        } catch (Exception ex) {  
            this.ShowDialog("更新数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 删除数据 
     */ 
    private void DeleteData() {  
        try {  
            String str = "DELETE FROM " + TABLE_NAME + " WHERE _id=3";  
            mSQLiteDatabase.execSQL(str);  
        } catch (Exception ex) {  
            this.ShowDialog("删除数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 删除数据 
     */ 
    private void DeleteData2() {  
        try {  
            String str = "DELETE FROM " + TABLE_NAME + " WHERE _id=?";  
            mSQLiteDatabase.execSQL(str, new Object[] { 2 });  
        } catch (Exception ex) {  
            this.ShowDialog("删除数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 删除数据 
     */ 
    private void DeleteData3() {  
        try {  
            int num = mSQLiteDatabase.delete(TABLE_NAME, "_id=1", null);  
            this.setTitle("删除行数num=" + num);  
        } catch (Exception ex) {  
            this.ShowDialog("删除数据异常:" + ex.getMessage());  
        }  
    }  
 
    /** 
     * 查询数据 
     */ 
    private void SelectData() {  
        try {  
            String sql = "SELECT * FROM " + TABLE_NAME;  
            Cursor cursor = mSQLiteDatabase.rawQuery(sql,null);  
            // Cursor cursor = mSQLiteDatabase.query(TABLE_NAME, new String[] {  
            // COLUMN_ID, COLUMN_NAME, COLUMN_AGE }, COLUMN_NAME + "=?",  
            // new String[] { "李四" }, null, null, null);  
            if (cursor != null) {  
                ListAdapter adapter = new SimpleCursorAdapter(this,  
                        R.layout.ss, cursor, new String[] { COLUMN_ID,  
                                COLUMN_NAME, COLUMN_AGE },  
                        new int[] { R.id.TextView1, R.id.TextView2,  
                                R.id.TextView3 });  
                lv.setAdapter(adapter);  
            }  
        } catch (Exception ex) {  
            this.ShowDialog("查询数据异常:" + ex.getMessage());  
        }  
    }  
    /** 
     * 删除表 
     */ 
    private void DropTable(){  
        try{  
            String sql = "DROP TABLE "+TABLE_NAME;  
            mSQLiteDatabase.execSQL(sql);  
        }catch(Exception ex){  
            this.ShowDialog("删除表异常:"+ex.getMessage());  
        }  
    }  
    /** 
     * 删除数据库 
     */ 
    private void DropDatabase(){          
        try{  
            this.deleteDatabase(DATABASE_NAME);  
        }catch(Exception ex){  
            this.ShowDialog("删除数据库异常:"+ex.getMessage());  
        }  
    }  
    /** 
     * 提示对话框 
     * @param msg 
     */ 
    private void ShowDialog(String msg) {  
        new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)  
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {  
 
                    @Override 
                    public void onClick(DialogInterface dialog, int which) {  
 
                    }  
 
                }).show();  
    }  

2.main.xml
Java代码
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent">  
    <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="@string/hello" />  
    <ListView android:id="@+id/ListView01" android:layout_width="fill_parent" 
        android:layout_height="wrap_content"></ListView>  
</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<ListView android:id="@+id/ListView01" android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>



3.ss.xml
Java代码
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_width="fill_parent" 
    android:paddingTop="5dip" android:paddingBottom="5dip" android:paddingLeft="5dip" 
    android:layout_height="wrap_content">  
    <TextView android:id="@+id/TextView1" android:layout_width="wrap_content" 
        android:layout_height="wrap_content"          
        android:text="" />  
    <TextView android:id="@+id/TextView2" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="20px" android:layout_marginLeft="50dip" android:paddingRight="50dip" 
        android:text="" />  
    <TextView android:id="@+id/TextView3" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" />  
分享到:
评论

相关推荐

    Android数据库SQLiteDataBase的使用

    因为数据库的操作在开发中的重要性是不言而喻的,所以,在数据库这一方面下了很大的功夫,终于掌握了基本的操作,包括建表和删除,对数据库的操作,“增删改查”基本操作,而且用了封装性来实现,是学习数据库的一个...

    Android 数据库SQLiteDatabase的使用

    Android 数据库SQLiteDatabase的使用 1.数据库辅助操作接口SQLiteDatabaseOpenHelper的使用 2.ContentValues的使用 3.数据的增删改查 4.listView 与Adapter的使用 5.OptionsMenu的使用 6.Editext隐藏失去焦点的方法

    实例讲解Android中SQLiteDatabase使用方法

    本文将通过一个实例详细介绍如何在Android中使用SQLiteOpenHelper和SQLiteDatabase进行数据库操作。 首先,要使用SQLite数据库,你需要创建一个继承自SQLiteOpenHelper的类。这个类会处理数据库的创建、升级以及...

    android开发sqliteDataBase使用实例

    本教程将深入讲解如何在Android项目中使用SQLite数据库。 首先,我们需要创建一个SQLite数据库。在Android中,我们通过继承`SQLiteOpenHelper`类来实现这个功能。`SQLiteOpenHelper`提供了创建、升级和打开数据库的...

    Android使用SQLiteDatabase直接存取数据与图像

    在这个主题中,我们将深入探讨如何在Android环境下使用SQLiteDatabase来直接存取数据和图像。 首先,要使用SQLite数据库,我们需要创建一个SQLiteOpenHelper的子类。这个类有两个关键方法:`onCreate()` 和 `...

    android studio SQLiteDatabase的基本功能与操作

    下面将详细介绍如何在Android Studio中使用SQLiteDatabase进行基本的功能与操作。 首先,我们需要在AndroidManifest.xml文件中添加读写权限,以允许应用访问SQLite数据库: ```xml &lt;uses-permission android:name=...

    Android SQLiteDatabase的使用详解

    ### Android SQLiteDatabase的使用详解 在Android开发过程中,`SQLiteDatabase`是进行本地数据存储的核心类之一,它提供了创建和查询SQLite...以上就是关于Android中`SQLiteDatabase`的使用详解,希望对你有所帮助!

    android的SQLiteDatabase的CRUD小案例

    本小案例将详细讲解如何在Android中使用SQLite数据库进行CRUD操作。 首先,我们需要在Android项目中创建一个`SQLiteOpenHelper`的子类,这个类是用来帮助我们创建和升级数据库的。例如,我们可以命名为`...

    Sqlite及SQLiteDatabase的使用

    SQLiteDatabase是Android系统中对SQLite数据库的封装,它是Android SDK的一部分,提供了与SQLite数据库进行交互的接口和类。开发者可以通过SQLiteDatabase来创建、更新、查询和管理数据库。 在Android应用开发中,...

    SQLiteDataBase简单Android实例

    在Android应用中,我们通常会在Activity或Fragment中使用这些数据库操作。例如,你可以创建一个按钮触发插入操作,设置一个ListView显示查询结果,或者通过点击ListView项执行更新或删除操作。 在实际项目中,为了...

    androidDb.rar_ SQLiteDatabase_SQLiteDatabase_android

    在本例"androidDb.rar_ SQLiteDatabase_SQLiteDatabase_android"中,我们将探讨如何在Android应用中使用SQLite数据库。 SQLite数据库的核心类是`SQLiteDatabase`,它是Android提供的一个接口,用于执行SQL语句和...

    listView SQLiteDatabase的使用

    在Android应用开发中,ListView和SQLite数据库是两个非常重要的组件。ListView主要用于展示大量数据的列表形式,而SQLite则是一个轻量级的关系型数据库,用于在本地存储应用数据。本篇文章将详细探讨如何将两者整合...

    android SQLIteDatabase

    本篇文章将详细探讨如何在Android中使用SQLite数据库进行数据的增删改查(CRUD)操作,并介绍与之相关的布局页面编写。 首先,创建SQLite数据库需要实现`SQLiteOpenHelper`的子类。这个类提供了创建和升级数据库的...

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android 数据库SQLiteDatabase的使用!.doc Android高手进阶教程之----Android 通用获取Ip的方法(判断手机是否联网的方法)!!!.doc Android高手进阶教程之----Android 在一个应用中如何...

    android ListView与SQLiteDatabase结合

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。SQLite则是一个轻量级的数据库系统,广泛应用于移动应用中存储结构化的数据。本篇将探讨如何将ListView与SQLite相结合,实现数据的高效...

    wellsql,简化您在android上使用sqlitedatabase的工作.zip

    在Android开发中,SQLite数据库是应用内存储数据的常用方式,但其原生API使用起来确实相对复杂,涉及很多重复的代码。为了简化这一过程,`wellsql`库应运而生,它是一个专为Android设计的开源项目,旨在让开发者更...

    Android中使用SQLite示例

    以下是对Android中使用SQLite进行详细讲解: 1. **SQLite简介** SQLite是一个开源、嵌入式的关系型数据库,支持SQL标准。在Android中,每个应用程序都可以拥有自己的SQLite数据库,并且无需额外的服务器进程。它的...

    android 关系型数据库 SQLiteDatabase的 增 删 改 查

    要向数据库中插入数据,我们可以使用`SQLiteDatabase`的`insert()`方法。例如: ```java MyDatabaseHelper dbHelper = new MyDatabaseHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ...

    安卓开发实验6——SQLite和SQLiteDatabase应用

    在本实验“安卓开发实验6——SQLite和SQLiteDatabase应用”中,我们将深入学习如何在Android应用程序中集成SQLite数据库来存储和检索数据,特别是新闻信息。我们将使用ListView组件来动态地展示这些新闻内容,提供...

Global site tag (gtag.js) - Google Analytics