android SQLite数据库

来源:互联网 发布:数据分析的具体流程 编辑:程序博客网 时间:2024/05/29 14:55

SQLiteHelper.java

/** 数据库基类 **/public class SQLiteHelper extends SQLiteOpenHelper {private static SQLiteHelper mInstance = null;/** 数据库名称 **/public static final String DATABASE_NAME = "sjk.db";/** 数据库版本号 **/private static final int DATABASE_VERSION = 1;/** 数据库表名 **/public static final String Table_name = "archive";/** 数据库SQL语句 添加一个表 **/private static final String NAME_TABLE_CREATE = "create table "+Table_name +"("//archive为表名+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"//id为主键,自增长+ "name VARCHAR,"+"barrier INTEGER DEFAULT 1,"//DEFAULT 1 设置默认值为1+ "age TEXT);";public SQLiteHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}/** 单例模式 **/public static synchronized SQLiteHelper getInstance(Context context) {if (mInstance == null) {mInstance = new SQLiteHelper(context);}return mInstance;}@Overridepublic void onCreate(SQLiteDatabase db) {/** 向数据库中添加表 **/db.execSQL(NAME_TABLE_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {/** 可以拿到当前数据库的版本信息 与之前数据库的版本信息 用来更新数据库 **/}/** * 删除数据库 *  * @param context * @return */public boolean deleteDatabase(Context context) {return context.deleteDatabase(DATABASE_NAME);}}



MainActivity.java

public class MainActivity extends Activity {/** 数据库类 **/SQLiteHelper sqlh = null;/** 本地数据库 **/public static SQLiteDatabase mDb = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_caily_main);// 初始化数据库sqlh = SQLiteHelper.getInstance(this);// 调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开mDb = sqlh.getReadableDatabase();//增加ContentValues cv = new ContentValues();cv.put("name", "李四");cv.put("age", 23);mDb.insert(SQLiteHelper.Table_name, null, cv);//删除String[] str = { String.valueOf(2) };mDb.delete(SQLiteHelper.Table_name, "id=?", str);//修改ContentValues xg = new ContentValues();xg.put("name", "张三");xg.put("age", 15);String[] args = { String.valueOf(1) };mDb.update(SQLiteHelper.Table_name, xg,"id=?", args);//查询//String sql = "select * from "+ SQLiteHelper.Table_name+" order by id desc";//order by id desc根据id降序显示,order by id asc根据id升序显示,//String sql = "select * from lsjl where name like '%"//+ searchKeywordET.getText().toString()//+ "%' or jltime like '%"//+ searchKeywordET.getText().toString() + "%'  order by id desc";String sql = "select * from " + SQLiteHelper.Table_name;Cursor cursor2 = mDb.rawQuery(sql,new String[] {});for (int j = 0; j < cursor2.getCount(); j++) {}while (cursor2.moveToNext()) {cursor2.getInt(0);cursor2.getString(1);}cursor2.close();//关闭游标mDb.close();//关闭数据库}}




Cursor游标

c.move(int offset);//以当前位置为参考,移动到指定行c.moveToFirst();//移动到第一行c.moveToLast();//移动到最后一行c.moveToPosition(int position);//移动到指定行c.moveToPrevious();//移动到前一行c.moveToNext();//移动到下一行c.isFirst();//是否指向第一条c.isLast();//是否指向最后一条c.isBeforeFirst();//是否指向第一条之前c.isAfterLast();//是否指向最后一条之后c.isNull(int columnIndex);//指定列是否为空(列基数为0)c.isClosed();//游标是否已关闭c.getCount();//总数据项数c.getPosition();//返回当前游标所指向的行数c.getColumnIndex(String columnName);//返回某列名对应的列索引值c.getString(int columnIndex);//返回当前行指定列的值






0 0