SQLite Database判断是否存在、新建、删除.....
Android SQLite Database本打算封装SQLite的,但是,发现实际上Android已经封装了一层,尤其是数据的增、删、查、改上,更是如此,所以,我后来只封装了一个连接层,负责打开、建立数据库,并返回一个SQLite的实例用来完成增、删、插、改等操作。
//----------- DBHelper -------------
package utility.db;
import java.io.FileNotFoundException;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class DBHelper
{
private SQLiteDatabase db = null;
private Context ctx = null;
public DBHelper( Context ctx )
{
this.ctx = ctx;
}
/**
* 判断数据库是否存在
*
* @param dbName
* 数据库名称
* @return true存在 false不存在
*/
public boolean exist( String dbName )
{
Log.log("called fun : exist()");
boolean flag = false;
try
{
db = ctx.openDatabase(dbName, null);
Log.log("database/"+dbName+" exist");
flag = true;
}
catch (FileNotFoundException e)
{
flag = false;
Log.log("database/"+dbName+" not exist");
}
finally
{
if (db != null)
db.close();
db = null;
}
return flag;
}
/**
* 打开数据库
*
* @param dbName
* 数据库名称
* @return true 打开成功 false打开失败
*/
public boolean openDatabase( String dbName , boolean created )
{
return openDatabase(dbName, null, created);
}
/**
* 打开数据库
*
* @param dbName
* 数据库名称
* @param factory
* @return true 打开成功 false打开失败
*/
public boolean openDatabase( String dbName , CursorFactory factory ,
boolean created )
{
Log.log("called fun : openDatabase()");
Log.log("called fun : if not exist then created "+dbName+" ? : "+created);
boolean flag = false;
if(exist(dbName))
{
try
{
db = ctx.openDatabase(dbName, factory);
Log.log("database/"+dbName+" is opened");
flag = true;
}
catch (FileNotFoundException e)
{
Log.log("database/"+dbName+" is not opened");
flag = false;
}
}
else
{
if(created)
{
flag = createDatabase(dbName, 1, 0, factory);
}
else
{
flag = false;
}
}
return flag;
}
相关文档:
这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口
不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被
使用到。尽管 ......
先记下来:
FileOutputStream outputStream = openFileOutput("mydb", 0);
InputStream inputStream = response.getEntity().getContent();
byte[] data = new byte[bufferSize];
for (int i = inputStream.read(data); i > 0; i = inputStream
.read(data)) {
& ......
1:从sqlite的官网上下载源码 http://www.sqlite.org/download.html
2:打开vs2008工程新建一个空的dll工程。
3:把sqlite3.h,sqlite3.cpp,sqlite3.def分别加入到head file 和source file下。
4:编译程序。 这时只能得到sqlite3.dll文件。
5:打开vs2008自带的命令行: 切到sqlite3.def所在的目录。
6:运行 ......
SQLite
的最新版本可以从这里下载
。下面我们以Windows版本sqlite-3_5_1.zip
为例介绍其安装方法。
(大家可以选择下载安装适合自己的版本)
下载后,将sqlite-3_5_1.zip解压缩至C:\sqlite目录即完成安装。
C:\sqlite目录构造为:
C:\sqlite
|
+--sqlite3.exe
打开一个CMD命令窗口
C:\ ......