SQLite

来源:互联网 发布:windows informix创建 编辑:程序博客网 时间:2024/06/05 15:01

SQLite
2个主要的类
A)__SQLiteOpenHelper
这个类是一个抽象类
实现他的类必须包含一个构造方法: public **(Context context,表的名字,CursorFactory,版本){spuer(**,**,**,**)}
参数注意:
version(版本):必须是大于0的整数

方法:
getReadableDatabase() 返回:可读的SQLiteDatabase
getWritableDatabase() 返回:可写的SQLiteDatabase
onCreate(SQLiteDatabase db) 第一次调用这个类的时候会调用 ,是个回调函数
onUpgradel(SQLiteDatabase db,int oldVersion,int new Version) 升级数据库的时候调用,是个回调函数
claose() 当关闭数据库时,是个回调函数

B)__SQLiteDatabase SQLite操作的类

实例:

//Databasehelper 是一个继承自SQLiteOpenHelper的类
Databasehelper dbHeper = new DatabaseHelper(上下文环境,"数据库名称",null,版本);
SQLiteDatabase db = dbHeper.getReadableDatabase();//或 getWritableDatabase()

//查询 返回 Cursor(一个游标类型,可以用 curosr.moveToNext()执行下一步操作)
Curosr cu = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
while(cu.moveToNext()){
String name =cu.getString(cu.getColumnINdex("列名"));
}

//增加
ContentValues cv = new ContentValues();
cv.put("列名","值");
long row = db.insert("表名",null,cv);

//删除
String where ="ID = ?";
String [] whereValue = {Integer.toString(id)};//这里如果where有多少个? 就要有多少个值
db.delete("表名",where,whereValue);

//修改
String where ="id =?";
String [] whereValue = {Integer.toString(id)};
ContentValues cv = new ContentValues();
cv.put("列名","要修改成什么值");
db.update("表名",cv,where,whereValue);

  1. import android.content.ContentValues;
  2. import android.content.Context;
  3. import android.database.Cursor;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteOpenHelper;
  6. import android.util.Log;
  7. publicclass DatabaseAdapter{
  8. privatestaticfinal String DB_NAME ="Test.db";//数据库名
  9. privatestaticfinalint DB_VERSION =1;//数据库版本
  10. privatestaticfinal String DB_TABLE ="my_order";//表名
  11. privatestaticfinal String KEY_ID ="_id";//id
  12. privatestaticfinal String KEY_ORDER_ID ="order_id";//订单号
  13. privatestaticfinal String KEY_TYPE ="_type";//订单类型
  14. privatestaticfinal String KEY_STATE ="_state";//订单状态
  15. private Context context;
  16. private DatabaseHelper mDatabaseHelper;
  17. private SQLiteDatabase mSQLiteDatabase;
  18. privatestaticclass DatabaseHelperextends SQLiteOpenHelper{
  19. //创建数据库语句
  20. privatestaticfinal String DB_CREAT ="CREATE TABLE "
  21. + DB_TABLE
  22. + " (" + KEY_ID +" INTEGER PRIMARY KEY,"
  23. + KEY_ORDER_ID + " TEXT,"
  24. + KEY_TYPE + " INTEGER,"
  25. + KEY_STATE + " INTEGER)";
  26. public DatabaseHelper(Context context) {
  27. super(context, DB_NAME,null , DB_VERSION);
  28. }
  29. @Override
  30. publicvoid onCreate(SQLiteDatabase db) {
  31. // TODO Auto-generated method stub
  32. db.execSQL(DB_CREAT);
  33. }
  34. @Override
  35. publicvoid onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {
  36. // TODO Auto-generated method stub
  37. db.execSQL("DROP TABLE IF EXISTS "+DB_TABLE);
  38. onCreate(db);
  39. }
  40. }
  41. public DatabaseAdapter(Context context) {
  42. this.context = context;
  43. }
  44. //开启
  45. publicvoid open() {
  46. mDatabaseHelper = new DatabaseHelper(context);
  47. mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
  48. }
  49. //关闭
  50. publicvoid close() {
  51. mSQLiteDatabase.close();
  52. mDatabaseHelper.close();
  53. }
  54. //增
  55. publiclong insertData(String orderId,int type) {
  56. ContentValues values = new ContentValues();
  57. values.put(KEY_ORDER_ID, orderId);
  58. values.put(KEY_TYPE, type);
  59. values.put(KEY_STATE, Config.STATE_APPLY);
  60. long id = mSQLiteDatabase.insert(DB_TABLE, KEY_ID, values);
  61. return id;
  62. }
  63. //删
  64. publicboolean deleteData(Context context,long id) {
  65. boolean delete = mSQLiteDatabase.delete(DB_TABLE, KEY_ID +"=" +id,null)>0;
  66. return delete;
  67. }
  68. //改
  69. publicboolean updateData(long id,int state) {
  70. ContentValues values = new ContentValues();
  71. values.put(KEY_STATE, ""+state);
  72. boolean update = mSQLiteDatabase.update(DB_TABLE, values, KEY_ID +"=" +id,null)>0;
  73. return update;
  74. }
  75. //查
  76. public Cursor fetchData(String selection) {
  77. Cursor mCursor = mSQLiteDatabase.query(DB_TABLE, new String[]{KEY_ID, KEY_ORDER_ID, KEY_TYPE, KEY_STATE}, selection,null,null,null,null);
  78. if(mCursor !=null)
  79. mCursor.moveToFirst();
  80. return mCursor;
  81. }
  82. }
原创粉丝点击