sqlite 数据库

      sqlite 数据库是android自带的一个轻量级数据库,使用起来很方便,这个demo介绍了其基本的增删查改方法。

demo:下载地址

运行截图:



源代码:MainActivity.java

package fk.androiddemo_008;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button createDatabaseBut,updateDatabaseBut,insertBut,queryBut,deleteBut,updateBut;
    DatabaseHelper dbHelper;
    SQLiteDatabase db;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        createDatabaseBut=(Button)findViewById(R.id.creatDatabaseBut);
        createDatabaseBut.setOnClickListener(new createDatabaseButListener());
        updateDatabaseBut=(Button)findViewById(R.id.updateDatabaseBut);
        updateDatabaseBut.setOnClickListener(new updateDatabaseButListener());
        insertBut=(Button)findViewById(R.id.insertBut);
        insertBut.setOnClickListener(new insertButListener());
        queryBut=(Button)findViewById(R.id.queryBut);
        queryBut.setOnClickListener(new queryButListener());
        deleteBut=(Button)findViewById(R.id.deleteBut);
        deleteBut.setOnClickListener(new deleteButListener());
        updateBut=(Button)findViewById(R.id.updateBut);
        updateBut.setOnClickListener(new updateButListener());
    }

    class createDatabaseButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //创建一个databaseHelper对象
            dbHelper=new DatabaseHelper(MainActivity.this,"FengKui");
            //调用databaseHelper中的getReadableDatabase()或getWritableDatabase()方法创建数据库
            db=dbHelper.getReadableDatabase();
        }
    }
    class updateDatabaseButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            dbHelper=new DatabaseHelper(MainActivity.this,"FengKui",2);
            //注意数据库的版本只能升不能降,否则会出错
            db=dbHelper.getReadableDatabase();
        }
    }
    class insertButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //创建ContentValues对象
            ContentValues values=new ContentValues();
            //向values中放键值对,键名即表的列名,值为对应列的值
            values.put("id", 001);
            values.put("name", "Tom");
            //调用insert方法,将数据插入表中
            db.insert("stu_info", null, values);
        }
    }
    class updateButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            ContentValues values=new ContentValues();
            values.put("name", "TomNew");
            //第三个参数是SQ语句中where子句,?为占位符,其值有后面的数组提供,所以占位符的个数等于数组的长度
            db.update("stu_info", values, "id=?", new String[]{"001"});
        }
    }
    class queryButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //(表名,查询的列名,where子句,占位符的值,null,null,null)
            Cursor cursor=db.query("stu_info",new String[]{"id","name"},"id=?",new String[]{"001"},null,null,null);
            while(cursor.moveToNext()){//cursor最初指向表的第一条数据的上方
                //先得到name列的序号,再用序号得到这列的值
                String name=cursor.getString(cursor.getColumnIndex("name"));
                System.out.println("ID为001的NAME是:"+name);
            }
        }
    }
    class deleteButListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            db.delete("stu_info","id=?",new String[]{"001"});
        }
    }

}


DatabaseHelper.java

package fk.androiddemo_008;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Administrator on 2016/9/13.
 */
public class DatabaseHelper extends SQLiteOpenHelper {
    static int VERSION=1;

    //第一个构造函数
    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                          int version) {
        super(context, name, factory, version);//必须有
    }

    //第二个构造函数(数据库版本更新后)
    public DatabaseHelper(Context context, String name, int version) {
        this(context, name, null, version);
    }

    //第三个构造函数(数据库版本没变过)
    public DatabaseHelper(Context context, String name) {
        this(context, name, VERSION);
    }

    @Override
    //只在第一次创建数据库时执行
    public void onCreate(SQLiteDatabase db) {
        System.out.println("create a database");
        //执行SQL语句,生成一张表
        db.execSQL("create table stu_info(id int,name varchar(20))");
    }

    @Override
    //在数据库版本更新时调用(更新版本号大于当前版本)
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        System.out.println("update a database");
    }

}

PS:如何查看虚拟机中的Sqlite数据库数据

android sdk 下的 adb.exe 工具可以帮助我们,不过需要一些简单的 linux 命令,注意 adb.exe位于***\sdk\platform-tools中,要在那里运行cmd,或把其路径加入path系统给环境变量

1,在android sdk安装目录下的platform-tools文件夹下使用cmd打开命令行窗口,输入 adb shell 

2,利用 ls 和 cd 命令进入到:data/data/app工程名/databases 下,如果提示没有权限,请输入su,切换到root用户

3,输入: sqlite3 数据库名 (打开我们的数据库,然后就是使用数据库语言了)

4,.schema (显示数据库里的表)

5,select * from 表名;(显示表中的数据,不要忘记后面的分号)



下面是一些常用的命令:

1,运行cmd进入命令窗口
2,输入adb shell进入Linux命令行
3, su (切换到root用户,提高权限)
4,ls (显示当前目录下有哪些文件和文件夹)
5,ls -l(详细显示)
6,cd 文件夹名 (进入相应文件夹:data/data/app工程名/databases)
7,sqlite3 数据库名(进入SQLite命令环境操作相应数据库)
8,.schema(显示数据库中的表)
9,select * from 表名;(显示表中的数据,不要忘记后面的分号)
10,.quit(退出sqlite3)
11,cd ..(返回上一级目录)
12,rm 文件名(删除文件)
13,rm -r 文件夹名(删除对应文件夹和里面的文件)
14,rm -f *(清空当前目录下的文件和文件夹)
15,delete from 表名;(清空表中的数据)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值