您的位置:首页 > 移动开发 > Android开发

Android SQLite数据库使用的小总结

2015-11-30 23:58 525 查看
文章纯属自己做笔记,可能调理会有点乱。。。

要使用数据库当然首先我们要创建这个数据库,一般来说我们使用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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: