Android(安卓)SQLite3 数据库操作
16lz
2021-01-25
Android 使用 SQLite数据库一般操作有:创建数据库、创建表、打开数据库、添加数据、删除数据、修改数据、查询数据、关闭数据库。
1.建立一个DatabaseUtil类:
其中内嵌一个DatabaseHelper类继承SQLiteOpenHelper。SQLiteOpenHelper需要实现两个方法onCreate(SQLiteDatabase)用于创建数据库,onUpgrade(SQLiteDatabase,int,int)升级数据库。
SQLiteDatabase,用来管理数据库,它提供了insert、delete、query等方法。
2.创建数据库,创建表:
private static final String CREATE_DATA_NAME = "create table LatLon (id long primary key, start_time timestamp not null, end_time timestamp not null, interval long not null, start_x integer, start_y integer, min_x integer, min_y integer, max_x integer, max_y integer,history varchar(100))"; /** * 创建更新数据库 */ private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } /** * 创建 */ @Override public void onCreate(SQLiteDatabase db) { Log.i(TAG, "Creating DataBase: " + CREATE_DATA_NAME); db.execSQL(CREATE_DATA_NAME); } /** * 数据库版本变化时调用 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion); } }
这样就创建了一个数据库,表名为LatLon,字段有id , start_time , end_time , interval , start_x , start_y , min_x , min_y , max_x , max_y , history
3.打开数据库:
public DatabaseUtil(Context ctx) { this.mCtx = ctx; }/** * 打开数据库 */ public DatabaseUtil open() throws SQLException { mDbHelper = new DatabaseHelper(mCtx); mDb = mDbHelper.getWritableDatabase(); return this; }
调用时:
DatabaseUtil dbUtil = new DatabaseUtil(getApplicationContext());dbUtil.open();
4.添加数据:
DBUtil中insert方法:
/** * 添加数据 */ public long insert(long time, long start_time, long end_time, long interval, double start_x, double start_y, double min_x, double min_y, double max_x, double max_y, String history) { ContentValues initialValues = new ContentValues(); initialValues.put("id", time); initialValues.put("start_time", start_time); initialValues.put("end_time", end_time); initialValues.put("interval", interval); initialValues.put("start_x", start_x); initialValues.put("start_y", start_y); initialValues.put("min_x", min_x); initialValues.put("min_y", min_y); initialValues.put("max_x", max_x); initialValues.put("max_y", max_y); initialValues.put("history", history); return mDb.insert(DATABASE_TABLE, null, initialValues); }
调用方法时:
public void recordLocation(Location loc) { DatabaseUtil dbUtil = new DatabaseUtil(getApplicationContext()); dbUtil.open(); dbUtil.insert(System.currentTimeMillis(), System.currentTimeMillis(), System.currentTimeMillis(), 5, loc.getLongitude(), loc.getAltitude(), loc.getLongitude(), loc.getAltitude(), loc.getLongitude(), loc.getAltitude(), "[asdf{sdf:sdf,sdf}]"); dbUtil.close(); }这样就可以将需要的值存入数据库。
5.删除数据:
删除某一行的数据:
/** * 根据时间删除数据 * */ public boolean deleteBytime(long time) { return mDb.delete(DATABASE_TABLE, "id" + "=" + time, null) > 0; }
调用方法时:
DatabaseUtil dbUtil = new DatabaseUtil(getApplicationContext());dbUtil.open();dbUtil.deleteBytime(1359363721903L);dbUtil.close();
6.修改数据:
暂无修改数据需求。
如有需求:
利用ContentValues 更新数据
mDb.update(表名,ContentValues,条件,null);
方法返回值为int类型。
7.查询数据:
查询出所有数据,返回的是一个Cursor:
/** * 查询所有数据 * * @return Cursor */ public Cursor queryAll() { return mDb.query(DATABASE_TABLE, new String[] { "id", "start_time", "end_time", "interval", "start_x", "start_y", "min_x", "min_y", "max_x", "max_y", "history" }, null, null, null, null, null); }
调用方法时:
DatabaseUtil dbUtil = new DatabaseUtil(getApplicationContext()); dbUtil.open(); Cursor cursor = dbUtil.queryAll(); if (cursor != null) { while (cursor.moveToNext()) { System.out.println(cursor.getInt(0) + " " + cursor.getDouble(2) + " " + cursor.getDouble(1)); } } dbUtil.close();
8.关闭数据库:
关闭数据库方法:
/** * 关闭数据库 */ public void close() { mDbHelper.close(); }
调用方法时:
dbUtil.close();
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- android Tabhost中,控制activity的生命周期
- Android(安卓)图表绘制 achartengine 示例解析
- Android中文API(133) —— LocationListener
- listview绑定xml网络数据(android极简原创系列)
- APK安装过程详解
- Android开发之四大组件