(内存的/data/data/目录中
要在Android系统中 *** 作SQLite数据库,是通过Android的核心类类来实现的,通常情况下为了数据库升级的需要以及使用方便,我们会选择继承抽像类,但是会将数据库文件创建在一个固定的目录,如果你想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用的静态方法()方法来得到对象,下面是一个具体 *** 作类:
packagenetmy;
importjavaioFile;
importjavaio;
importjavaioInputStream;
importnetmyjokebookR;
importandroidappActivity;
importandroidcontentContext;
importandroiddatabasesqlite;
publicclassDBHelper{
//得到SD卡路径
privatefinalStringDATABASE_PATH=androidosEnvironment
()()
"/joke";
privatefinalActivityactivity;
//数据库名
privatefinalStringDATABASE_FILENAME;
publicDBHelper(Contextcontext){
//TODOAuto-generatedconstructorstub
//这里直接给数据库名
DATABASE_FILENAME="jokebookdb3";
activity=(Activity)context;
}
//得到 *** 作数据库的对象
public()
{
try
{
booleanb=false;
//得到数据库的完整路径名
String=DATABASE_PATH"/"DATABASE_FILENAME;
//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)
//将数据库文件复制到SD卡中Filedir=newFile(DATABASE_PATH);
if(!direxists())
b=dirmkdir();
//判断是否存在该文件
if(!(newFile())exists())
{
//不存在得到数据库输入流对象
InputStreamis=activity()(
Rrawjokebook);
//创建输出流
FileOutputStreamfos=newFileOutputStream(databaseFilename);
//将数据输出
byte[]buffer=newbyte[8192];
intcount=0;
while((count=isread(buffer))
{
foswrite(buffer,0,count);
}
//关闭资源
fosclose();
isclose();
}
//得到SQLDatabase对象
SQLiteDatabasedatabase=SQLiteDatabaseopenOrCreateDatabase(
databaseFilename,null);
returndatabase;
}
catch(Exceptione)
{
Systemoutprintln(egetMessage());
}
returnnull;
}
}
写完这个类之后,就能得到SQLiteDatabase对象,就能对数据库 *** 作了
SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
只要导入jar包就行了,使用的时候 加载class(即ClassforName("orgsqliteJDBC");)然后可以用最原始的jdbc代码去使用sqlite比如创建连接:Connection conn = DriverManagergetConnection("jdbc:sqlite:testdb" );(其中testdb就是数据库文件以及数据库的名称,这句话有两个作用:1、如果不存在该数据库则创建并返回连接;2、如果存在了数据库,则直接返回连接)代码如下:
import javasql; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; try { //ClassforName加载class ClassforName("orgsqliteJDBC"); c = DriverManagergetConnection("jdbc:sqlite:testdb"); } catch ( Exception e ) { Systemerrprintln( egetClass()getName() + ": " + egetMessage() ); Systemexit(0); } Systemoutprintln("Opened database successfully"); }} 创建表import javasql; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; Statement stmt = null; try { //ClassforName加载class ClassforName("orgsqliteJDBC"); //DriverManagergetConnection创建连接 c = DriverManagergetConnection("jdbc:sqlite:testdb"); Systemoutprintln("Opened database successfully"); stmt = ccreateStatement(); //sql创建表语句 String sql = "CREATE TABLE COMPANY " + "(ID INT PRIMARY KEY NOT NULL," + " NAME TEXT NOT NULL, " + " AGE INT NOT NULL, " + " ADDRESS CHAR(50), " + " SALARY REAL)"; //executeUpdate创建表 stmtexecuteUpdate(sql); stmtclose(); cclose(); } catch ( Exception e ) { Systemerrprintln( egetClass()getName() + ": " + egetMessage() ); Systemexit(0); } Systemoutprintln("Table created successfully"); }}
Access不能算真正意义上的数据库,但是Access是前台和后台在一起,对小用户还是有其优点。
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的 *** 作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有14个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
以上就是关于sqlite的数据库文件在什么地方(sqlite数据库默认存储地址)全部的内容,包括:sqlite的数据库文件在什么地方(sqlite数据库默认存储地址)、我怎么能把一个Python内存SQLite数据库、java 调用 sqlite 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)