Android-Sqlite数据库_创建数据库操作Demo

代码

Activity01

package com.lxt008;

import android.app.Activity;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class Activity01 extends Activity
{
    private static int            miCount            = 0;

    /* 线性布局 */
    LinearLayout                m_LinearLayout    = null;
    /* 列表视图-显示数据库中的数据 */
    ListView                    m_ListView        = null;

    MyDataBaseAdapter m_MyDataBaseAdapter;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        /* 创建LinearLayout布局对象 */
        m_LinearLayout = new LinearLayout(this);
        /* 设置布局LinearLayout的属性 */
        m_LinearLayout.setOrientation(LinearLayout.VERTICAL);
        m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);

        /* 创建ListView对象 */
        m_ListView = new ListView(this);
        LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        m_ListView.setBackgroundColor(Color.BLACK);

        /* 添加m_ListView到m_LinearLayout布局 */
        m_LinearLayout.addView(m_ListView, param);

        /* 设置显示m_LinearLayout布局 */
        setContentView(m_LinearLayout);

        /* 构造MyDataBaseAdapter对象 */
        m_MyDataBaseAdapter = new MyDataBaseAdapter(this);

        /* 取得数据库对象 */
        m_MyDataBaseAdapter.open();

        UpdataAdapter();
    }

    public boolean onKeyUp(int keyCode, KeyEvent event)
    {
        switch (keyCode)
        {
            case KeyEvent.KEYCODE_DPAD_LEFT:
                AddData();
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                DeleteData();
                break;
            case KeyEvent.KEYCODE_1:
                UpData();
                break;
        }
        return true;
    }

    /* 更新一条数据 */
    public void UpData()
    {
        m_MyDataBaseAdapter.updateData(miCount - 1, miCount, "修改后的数据" + miCount);

        UpdataAdapter();
    }

    /* 向表中添加一条数据 */
    public void AddData()
    {
        m_MyDataBaseAdapter.insertData(miCount, "测试数据库数据" + miCount);
        miCount++;
        UpdataAdapter();
    }

    /* 从表中删除指定的一条数据 */
    public void DeleteData()
    {

        /* 删除数据 */
        m_MyDataBaseAdapter.deleteData(miCount);
        miCount--;
        if (miCount < 0)
        {
            miCount = 0;
        }
        UpdataAdapter();
    }

    /* 按键事件处理 */
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            /* 退出时,不要忘记关闭 */
            m_MyDataBaseAdapter.close();
            this.finish();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    /* 更行试图显示 */
    public void UpdataAdapter()
    {
        // 获取数据库Phones的Cursor
        Cursor cur = m_MyDataBaseAdapter.fetchAllData();

        miCount = cur.getCount();
        if (cur != null && cur.getCount() >= 0)
        {
            // ListAdapter是ListView和后台数据的桥梁
            ListAdapter adapter = new SimpleCursorAdapter(this,
            // 定义List中每一行的显示模板
                // 表示每一行包含两个数据项
                android.R.layout.simple_list_item_2,
                // 数据库的Cursor对象
                cur,
                // 从数据库的TABLE_NUM和TABLE_DATA两列中取数据
                new String[] {MyDataBaseAdapter.KEY_NUM, MyDataBaseAdapter.KEY_DATA },
                // 与NAME和NUMBER对应的Views
                new int[] { android.R.id.text1, android.R.id.text2 });

            /* 将adapter添加到m_ListView中 */
            m_ListView.setAdapter(adapter);
        }
    }
}

MyDataBaseAdapter

package com.lxt008;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDataBaseAdapter
{
    // 用于打印log
    private static final String    TAG                = "MyDataBaseAdapter";

    // 表中一条数据的名称
    public static final String    KEY_ID        = "_id";                                                

    // 表中一条数据的内容
    public static final String    KEY_NUM        = "num";                                                

    // 表中一条数据的id
    public static final String    KEY_DATA        = "data";

    // 数据库名称为data
    private static final String    DB_NAME            = "Examples_06_06.db";

    // 数据库表名
    private static final String    DB_TABLE        = "table1";

    // 数据库版本
    private static final int    DB_VERSION        = 1;

    // 本地Context对象
    private Context                mContext        = null;

    //创建一个表
    private static final String    DB_CREATE        = "CREATE TABLE " + DB_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NUM + " INTERGER,"+ KEY_DATA + " TEXT)";

    // 执行open()打开数据库时,保存返回的数据库对象
    private SQLiteDatabase        mSQLiteDatabase    = null;

    // 由SQLiteOpenHelper继承过来
    private DatabaseHelper        mDatabaseHelper    = null;

    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        /* 构造函数-创建一个数据库 */
        DatabaseHelper(Context context)
        {
            //当调用getWritableDatabase()
            //或 getReadableDatabase()方法时
            //则创建一个数据库
            super(context, DB_NAME, null, DB_VERSION);

        }

        /* 创建一个表 */
        @Override
        public void onCreate(SQLiteDatabase db)
        {
            // 数据库没有表时创建一个
            db.execSQL(DB_CREATE);
        }

        /* 升级数据库 */
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            db.execSQL("DROP TABLE IF EXISTS notes");
            onCreate(db);
        }
    }

    /* 构造函数-取得Context */
    public MyDataBaseAdapter(Context context)
    {
        mContext = context;
    }

    // 打开数据库,返回数据库对象
    public void open() throws SQLException
    {
        mDatabaseHelper = new DatabaseHelper(mContext);
        mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
    }

    // 关闭数据库
    public void close()
    {
        mDatabaseHelper.close();
    }

    /* 插入一条数据 */
    public long insertData(int num, String data)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_NUM, num);
        initialValues.put(KEY_DATA, data);

        return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues);
    }

    /* 删除一条数据 */
    public boolean deleteData(long rowId)
    {
        return mSQLiteDatabase.delete(DB_TABLE, KEY_ID + "=" + rowId, null) > 0;
    }

    /* 通过Cursor查询所有数据 */
    public Cursor fetchAllData()
    {
        return mSQLiteDatabase.query(DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, null, null, null, null, null);
    }

    /* 查询指定数据 */
    public Cursor fetchData(long rowId) throws SQLException
    {

        Cursor mCursor =

        mSQLiteDatabase.query(true, DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, KEY_ID + "=" + rowId, null, null, null, null, null);

        if (mCursor != null)
        {
            mCursor.moveToFirst();
        }
        return mCursor;

    }

    /* 更新一条数据 */
    public boolean updateData(long rowId, int num, String data)
    {
        ContentValues args = new ContentValues();
        args.put(KEY_NUM, num);
        args.put(KEY_DATA, data);

        return mSQLiteDatabase.update(DB_TABLE, args, KEY_ID + "=" + rowId, null) > 0;
    }

}

布局

<?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"
    />
</LinearLayout>
时间: 2024-10-05 14:10:47

Android-Sqlite数据库_创建数据库操作Demo的相关文章

Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)

系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe AIR中使用Flex连接Sqlite数据库(3)(查询) Adobe AIR中使用Flex连接Sqlite数据库(4)(事务) Flex,Fms3相关文章索引 Fms3和Flex打造在线多人视频会议和视频聊天(附原代码) 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))

c++中sqlite中文路径创建数据库失败的问题

 sqlite3里面使用的是utf-8的编码,所以在创建数据库的时候若果路径是纯英文字母和数字的话,那么多ansii和utf-8编码是一样的,这个时候sqlite3_open函数的调用完全没问题.但是如果是中文的话asnsii直接转化为Utf-8就会出错, 找不到路径,从而创建或者打开数据库失败.解决的方法如下: //sdk中可以直接从UNICODE转为utf-8,不能直接从ansii转为utf-8 //所以 Ansii要转为Utf-8, 需要先转为UNICODE 再转为utf-8 void U

数据库的创建和操作

创建和操作数据库 1.创建数据库的基本要求 [1]主数据文件:一个数据库有,且只能有一个.扩展名是.mdf. [2]次要数据文件:可以根据需要添加多个,并且可以分布在不同的磁盘上.扩展名.ndf. [3]日志文件:有且至少有一个日志文件,也可以多个.扩展名是.ldf. 2.数据库创建要思考的问题 [1]数据容量:根据需要预估. [2]文件分布:根据容量大小,创建不同次要数据文件.分布存储. 3.基于T-SQL脚本创建数据库实例 1 use master--表示当前我们要在master数据库中操作

android sqlite 一次创建多个表

创建: package com.yangguangfu.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; /** * 默认就在数据库里创建4张表 * * */ public class DBOpenHelper extend

redhat5.4 32位安装mysql 5.6.17数据库及创建数据库实例、配置编码、卸载

下载地址:http://pan.baidu.com/s/1eQ3o3Uq 一.安装 1.1.安装MySQL-server-5.6.17-1 1.[[email protected] mysql]# rpm -ivh MySQL-server-5.6.17-1.linux_glibc2.5.i386.rpm  Preparing... ########################################### [100%] 1:MySQL-server ################

oracle数据库怎么创建数据库实例

最近进入了一个国家单位,用的是oracle数据库,因为本人之前没有安装过oracle数据库,现在分享一下. 首先我安装的oracle 11g版本的数据库,具体怎么安装的数据库,网上有很多教程,而且这个安装过程比较复杂,所以我就不赘述了. 我本篇记录的是如何从安装好的数据库中创建一个数据库实例,即新建一个数据库. 第一步:在开始菜单栏找到安装好的数据库文件,点击. 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第八步: 第九步: 第十步: 第十一步: 第十二步: 第十三步:点击完成

android 在SdCard上创建数据库

数据库管理类中使用到的是自定义的Context,而非app的上下文对象: /** * 用于支持对存储在SD卡上的数据库的访问 **/ public class DbContext extends ContextWrapper { /** * 构造函数 * * @param base * 上下文环境 */ public DbContext(Context base) { super(base); } /** * 获得数据库路径,如果不存在,则创建对象对象 * * @param name * @pa

Android SQlite数据库常规操作

1.Sqlite简介 Sqlite是一款轻型的数据库,它包含在一个相对小的C库中,它的设计目标是嵌入式的,由于它占用资源非常少,可能只需要几百K的内存就可以了,并且支持Windows/Linux/Unix等等主流的操作系统,同时可以和很多种程序语言相结合,比如:C#/Java/php等,所以在嵌入式设备中特别受欢迎,这一点也正好符合android的开发要求,所以在Android开发中经常要用到该数据库. 2. 运用Sqlite,一般要有一个SQLiteOpenHelper来辅助创建数据库,连接数

Android SQLite数据库操作示例

SQLite介绍 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.此外,它还是开源的,任何人都可以使用它. SQLite由以下几个组件组成:SQL编译器.内核.后端以及附件.SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试.修改和扩展SQLite的内核变得更加方便. SQLite支持的数据类型参考链接:http://blog.csdn.net/wzy_1988/article/details/36005947 Android在运行时(