android sqlite数据库的使用方法

来源:互联网 发布:prelude是什么软件 编辑:程序博客网 时间:2024/06/11 15:48

sqlite是android操作系统里面的一个轻量级数据库,可以用来存储我们的应用程序的相关信息,程序中通过继承SQLiteOpenHelper实现数据库功能。

DatabaseHelper.java

public class DatabaseHelper extends SQLiteOpenHelper {            //数据库的版本      private static int VERSION = 1;       public DatabaseHelper(Context context, String name, 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, String sql){  this(context,name,VERSION);      }        @Override      public void onCreate(SQLiteDatabase db) {//创建表的语句String createSql = "create table MyTable"+ " (id varchar(20), name varchar(20))";  db.execSQL(createSql);      }        @Override      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {      }    }  

个人习惯再加一层,把数据库的各种操作封装起来。

DatabaseOperation.java

public class DatabaseOperation {            private Context mContext;            private DatabaseHelper databaseHelper;      private SQLiteDatabase db;            public DatabaseOperation(Context mContext) {  this.mContext = mContext;      }            // 打开数据库      public void open(String dbName) {  databaseHelper = new DatabaseHelper(mContext, dbName);      }            // 关闭数据库      public void close() {  if (db != null)  db.close();   if (databaseHelper != null)  databaseHelper.close();      }            // 插入数据      public void insert(String sql) {  // 添加插入时的其他操作  db = databaseHelper.getWritableDatabase();  db.execSQL(sql);      }            // 更新数据      public void update(String sql) {  // 添加更新时的其他操作  db = databaseHelper.getWritableDatabase();  db.execSQL(sql);      }            // 删除数据      public void delete(String sql) {  // 添加删除时的其他操作  db = databaseHelper.getWritableDatabase();  db.execSQL(sql);      }            // 查找数据      public Cursor find(String sql) {  db = databaseHelper.getWritableDatabase();  Cursor cursor = db.rawQuery(sql, null);   return cursor;      }  }  

最后则是对自己建的表进行读写处理。

MyTable.java

public class MyTable {            private Context mContext;            private final String DATABASE_NAME = "MyDatabase";       private final String TABLE_NAME = "MyTable";       private String sql;            public HistoryDatabase(Context mContext) {  this.mContext = mContext;      }            // 读取表的信息      public void read() {  DatabaseOperation db = new DatabaseOperation(mContext);  db.open(DATABASE_NAME, sql);    sql = "select * from " + TABLE_NAME;  Cursor cursor = db.find(sql);    // 取出每一条元祖数据      while (cursor.moveToNext()) {  cursor.getString(cursor.getColumnIndex("id"));  cursor.getString(cursor.getColumnIndex("name"));  }    db.close();      }            // 将数据放入表中      public void write(int idValue, int nameValue) {  DatabaseOperation db = new DatabaseOperation(mContext);  db.open(DATABASE_NAME, sql);    // 插入数据库中  sql = "insert into " + TABLE_NAME;  sql += " " + "(id, name) values ";  sql += "('" + idValue + "',";  sql += " '" + nameValue + "')";  db.insert(sql);    db.close();      }            // 清空表      public void delete() {  DatabaseOperation db = new DatabaseOperation(mContext);  db.open(DATABASE_NAME, sql);    sql = "delete from " + TABLE_NAME;  db.delete(sql);    db.close();      }        }  

以上都封装好了以后,只需要在需要调用数据库表的地方调用即可。

MainActivity.java

Mytable myTable = new MyTable(MainActivity.this);myTable.read();myTable.write("1", "zhangsan");myTable.delete();
要添加其他表只需要依照MyTable.java新增一个文件,调用方法还是相同的。

0 0
原创粉丝点击