sqlite
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,int version){ this(context,null,version); } public DBHelper(Context context,String name){ this(context,VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { } }
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,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,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语句。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |