Android SQLite数据库使用的小总结
2015-11-30 23:58
525 查看
文章纯属自己做笔记,可能调理会有点乱。。。
要使用数据库当然首先我们要创建这个数据库,一般来说我们使用SQLiteOpenHelper来帮助我们创建数据库。
从官网介绍:
SQLiteOpenHelper
A helper class to manage database creation and version management.
也可以看出它主要是来创建数据库库和进行版本管理的。
通过上面两段代码我们就创建了个名为database1,并且含有一张名为table1的表,该表含有两列,列名分别为COLUMN1,COLUMN2的SQLite数据库了。
顺便说下getWritableDatabase()和getReadableDatabase()的区别,其实只要数据库磁盘空间不满(查了下好像在理论上,一个数据库文件可以有2TB,没去具体求证。。),它俩是一样的,都是以读写方式打开数据库,满了后,用getWritableDatabase()打开会出错,getReadableDatabase()会变成只读方式打开。
眼见为实,我们可以通过Root Explorer去看下我们创建的数据库,如下图所示(查看路径图上也有):
![](http://img.blog.csdn.net/20151130233956983?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
下面我们可以通过下面这条语句向表table1中增加些数据:
我们可以通过SQLite Editor查看到增加的数据,如下图
![](http://img.blog.csdn.net/20151130234558864?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
:
其他SQL语句我就不一一展开说了,大家可以参考下这篇博客:
http://keeponmoving.iteye.com/blog/1487773
大家如果想把自己数据库中的数据导出的话,推荐OpenCSV,可以把数据导出成.csv格式,我的是opencsv-1.7,下面是我写的一个导出数据的类:
要使用数据库当然首先我们要创建这个数据库,一般来说我们使用SQLiteOpenHelper来帮助我们创建数据库。
从官网介绍:
SQLiteOpenHelper
A helper class to manage database creation and version management.
也可以看出它主要是来创建数据库库和进行版本管理的。
public class MyDateBaseHelper extends SQLiteOpenHelper { public MyDateBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table table1(_id integer primary key autoincrement," + "COLUMN1,COLUMN2)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("更新" + oldVersion + "to" + newVersion); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDateBaseHelper mMyDateBaseHelp = new MyDateBaseHelper(this, "database1.db3", null, 1); SQLiteDatabase sqLiteDatabase = mMyDateBaseHelp.getReadableDatabase(); }
通过上面两段代码我们就创建了个名为database1,并且含有一张名为table1的表,该表含有两列,列名分别为COLUMN1,COLUMN2的SQLite数据库了。
顺便说下getWritableDatabase()和getReadableDatabase()的区别,其实只要数据库磁盘空间不满(查了下好像在理论上,一个数据库文件可以有2TB,没去具体求证。。),它俩是一样的,都是以读写方式打开数据库,满了后,用getWritableDatabase()打开会出错,getReadableDatabase()会变成只读方式打开。
眼见为实,我们可以通过Root Explorer去看下我们创建的数据库,如下图所示(查看路径图上也有):
下面我们可以通过下面这条语句向表table1中增加些数据:
sqLiteDatabase.execSQL("insert into table1 values(null,?,?)",new Integer[]{1,2});
我们可以通过SQLite Editor查看到增加的数据,如下图
:
其他SQL语句我就不一一展开说了,大家可以参考下这篇博客:
http://keeponmoving.iteye.com/blog/1487773
大家如果想把自己数据库中的数据导出的话,推荐OpenCSV,可以把数据导出成.csv格式,我的是opencsv-1.7,下面是我写的一个导出数据的类:
public class ExportData { private SQLiteDatabase mSQLiteDatabase; private File file; ExportData(SQLiteDatabase sqLiteDatabase) { mSQLiteDatabase = sqLiteDatabase; } public void exportDatabaseToCSV() { //导出数据保存的文件夹 File exportDir = new File(Environment.getExternalStorageDirectory().getPath(), "/zhanExportData"); if (!exportDir.exists()) { System.out.println(exportDir.mkdir()); } //导出数据的文件名 file = new File(exportDir, "myData.csv"); try { CSVWriter csvWriter = new CSVWriter(new FileWriter(file)); Cursor cursor = mSQLiteDatabase.rawQuery( "select * from table1", null ); while (cursor.moveToNext()) { //可以在这里增加数据库中数据的列数 String string[] = {cursor.getString(0), cursor.getString(1), cursor.getString(2)}; csvWriter.writeNext(string); } csvWriter.close(); cursor.close(); } catch (IOException e) { e.printStackTrace(); } } public String getFilePath() { return file.getPath(); } }
相关文章推荐
- Android中实现定时器的四种方式
- Android中实现定时器的四种方式
- Android常用adb命令
- Android常用adb命令
- 积跬步-至千里系列之二:Android中Activity的启动流程分析和总结
- Android studio将项目打包成签名安装包
- 安卓开发学习笔记(一)
- 【Android导航 小细节 大成功】项目感悟
- Android FancyCoverFlow的使用实现图片画廊形式的呈现
- Android Studio中使用AIDL简单示例
- 【Android导航 君子生非异也 善假于物也】优秀博客
- android中联系人搜索框
- android 之 EditText 取消默认焦点的两种方式
- android的适配
- 【Android导航 千里之行 始于足下】问题总结
- 关于androidstudio创建aidl文件的疑惑
- 关于android屏幕适配
- 【Android导航 站在巨人的肩膀上】进阶之路
- Win8 64位系统 android 安装
- android EditText 属性