根据公司项目~搭建开发的框架(二)

 

 


创建数据库工具类
  • SharedPreferences 以XML格式存储数据,存数格式是键值对
  • Sqlite Android内置的数据库,一般使用的时候继承SQLiteOpenHelper,CRUD的常规操作一般写在里面
public class DbHelper extends SQLiteOpenHelper { 


       private static final String DB_NAME = "mydb"; 
       public static final String TB_PERSON = "person"; 
       private static final int VERSION = 1; 
       private static final String CREATE_TABLE_PERSON = "create table  person (_id integer primary key           autoincrement, name text,age integer)"; 
       private Context mContext; 
       private SQLiteDatabase database; 


       public DbHelper(Context context) { 
              //固定版本号,创建数据库
              super(context, DB_NAME, null, VERSION); 
              //获取一个用于操作数据库的SQLiteDatabase实例,有读写的权限
              this.database = getWritableDatabase(); 
              this.mContext = context; 
       }


       @Override 
       public void onCreate(SQLiteDatabase db) { 
              // TODO Auto-generated method stub 


       }


       @Override 
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
              // TODO Auto-generated method stub 


       }


       private void createTable(String str, SQLiteDatabase db) { 
              StringBuffer sqlStr = new StringBuffer(); 
              sqlStr.append(str);
              db.execSQL(sqlStr.toString());
       }


       public void open() { 
              //存储一个值用于判断表是否已经创建
              SharedPreferences prefer = ((Activity)mContext).getSharedPreferences("setting", 0); 
              boolean isCreateTable = prefer.getBoolean("iscreatetable", false); 
              if(!isCreateTable){   
               //调用创建表的方法      
                     createTable(CREATE_TABLE_PERSON, database);                           
                     Editor editor = prefer.edit();
                     editor.putBoolean("iscreatetable", true); 
                     editor.commit();
              }
       }


       public void insert(String tableName, ContentValues cv) { 
              database.insert(tableName, null, cv); 
       }


       public void delete(String tableName, String id) { 
              StringBuffer sqlStr = new StringBuffer(); 
              sqlStr.append("delete from "); 
              sqlStr.append(tableName);
              sqlStr.append(" where id=" + id); 
              database.execSQL(sqlStr.toString()); 
       }


       public void delete(String tableName, String columnName, String columnValue) { 
              StringBuffer sqlStr = new StringBuffer(); 
              sqlStr.append("delete from "); 
              sqlStr.append(tableName);
              sqlStr.append(" where " + columnName + "=" + columnValue); 
              database.execSQL(sqlStr.toString()); 
       }


       public void updateById(String tableName, String id, ContentValues cv) { 
              database.update(tableName, cv, "id = ?", new String[] { id }); 
       }


       public Cursor query(String table, String[] columns, String selection, 
                     String[] selectionArgs, String groupBy, String having,
                     String orderBy, String limit) {
              return database.query(table, columns, selection, selectionArgs, 
                           groupBy, having, orderBy);
       }


       public void closeDataBase() { 
              database.close(); 
       }


       public Context getmContext() { 
              return mContext; 
       }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值