sqlite

来源:互联网 发布:java异或 编辑:程序博客网 时间:2024/05/16 08:24

 

1.SQLiteOpenHelper

  SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法

  onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。

  onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。

package xqh.utils;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteDatabase.CursorFactory;public class DBHelper extends SQLiteOpenHelper {    //数据库版本    private static final int VERSION = 1;    //新建一个表    String sql = "create table if not exists TestUsers"+    "(id int primary key,name varchar,sex varchar)";        public DBHelper(Context context, String name, CursorFactory factory,            int version) {        super(context, name, factory, version);    }    public DBHelper(Context context,String name,int version){        this(context,name,null,version);    }        public DBHelper(Context context,String name){        this(context,name,VERSION);    }        @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {            }    }


3.SQLite的使用

  Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例

 

package xqh.sqlite;import xqh.utils.DBHelper;import android.app.Activity;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.widget.Button;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;;public class TestSQLite extends Activity {    Button textBtn = null;    Button btnCreateDb = null;    Button btnCreateTb = null;    Button btnInsert = null;    Button btnUpdate = null;    Button btnDelete = null;    DBHelper dbHelper = null;    SQLiteDatabase db = null;        @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.sqlitetest);                OpenDb();                textBtn = (Button)findViewById(R.id.btnHeader);        textBtn.setFocusable(true);        //        btnCreateDb = (Button)findViewById(R.id.btnCreateDb);//        btnCreateDb.setOnClickListener(createDbListener);//        //        btnCreateTb = (Button)findViewById(R.id.btnCreateTb);//        btnCreateTb.setOnClickListener(createTbListener);                btnInsert = (Button)findViewById(R.id.btnInsert);        btnInsert.setOnClickListener(insertTbListener);                btnUpdate = (Button)findViewById(R.id.btnUpdate);        btnUpdate.setOnClickListener(updateTbListener);                btnDelete = (Button)findViewById(R.id.btnDelete);        btnDelete.setOnClickListener(deleteTbListener);    }        public OnClickListener deleteTbListener = new OnClickListener() {        public void onClick(View v) {            DeleteTb();        }    };        public OnClickListener updateTbListener = new OnClickListener() {        public void onClick(View v) {            UpdateTb();        }    };        public OnClickListener insertTbListener = new OnClickListener() {        public void onClick(View v) {            InsertTb();        }    };    //    public OnClickListener createDbListener = new OnClickListener() {//        public void onClick(View v) {//            CreateDatabase("TestDb01");//        }//    };//    public OnClickListener createTbListener = new OnClickListener() {//        public void onClick(View v) {//            CreateTable();//        }//    };    //    /**//     * 新建一个数据库//     * @param dbName//     * @return//     *///    public SQLiteDatabase CreateDatabase(String dbName){//        dbHelper = new DBHelper(this, dbName);//        return dbHelper.getWritableDatabase();//    }        /**     * 新建一个表     * @param db     */    public void CreateTable(){        db = dbHelper.getWritableDatabase();        String sql = "create table if not exists TestUsers"+                        "(id int primary key,name varchar,sex varchar)";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "create table failed");        }    }        /**     * 插入数据     */    public void InsertTb(){        db = dbHelper.getWritableDatabase();        String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "insert failed");        }    }        /**     * 更新数据     */    public void UpdateTb() {        db = dbHelper.getWritableDatabase();        String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "update failed");        }    }        /**     * 删除数据     */    public void DeleteTb(){        db = dbHelper.getWritableDatabase();        String sql = "delete from TestUsers where id = 2";        try {            db.execSQL(sql);        } catch (SQLException e) {            Log.i("err", "delete failed");        }    }        /**     * 打开数据库     */    public void OpenDb(){        dbHelper = new DBHelper(this, "TestDb01");        db = dbHelper.getWritableDatabase();    }        /**     * 关闭数据库     */    public void CloseDb(){        dbHelper.close();    }        @Override    protected void onDestroy() {        super.onDestroy();        if(db!=null){            db.close();        }        if(dbHelper!=null){            dbHelper.close();        }    }    }

常用命令常用命令常用命令::::

1)创建数据库文件:>SQLite3d:\test.db回车就生成了一个test.db在d盘。这样同时也SQLite3挂上了这个test.db

2)用.help可以看看有什么命令>.help回车即可

3)可以在这里直接输入SQL语句创建表格用;结束,然后回车就可以看到了

4)看看有创建了多少表>.tables

5)看表结构>.schema表名

6)看看目前挂的数据库>.database

7)如果要把查询输出到文件>.output文件名>查询语句;查询结果就输出到了文件c:\query.txt把查询结果用屏幕输出>.outputstdout

8)把表结构输出,同时索引也会输出.dump表名

9)退出>.exit或者.quit普通SQL操作,通用标准SQL语句。

原创粉丝点击