当前位置:首页 » 操作系统 » sqlite数据库使用

sqlite数据库使用

发布时间: 2022-02-27 08:12:38

‘壹’ 如何调用sqlite数据库中的数据

1、使用insert方法插入记录
SQLiteDatabase的insert方法的签名为long
insert(String
table,String
nullColumnHack,ContentValues
values),这个插入方法的参数说明如下:
table:代表想插入数据的表名。
nullColumnHack:代表强行插入null值的数据列的列名。
values:代表一行记录的数据。
insert方法插入的一行记录使用ContentValues存放,ContentValues类似于Map,它提供了put(String
key,Xxx
value)(其中key为数据列的列名)方法用于存入数据、getAsXxx(String
key)方法用于取出数据。
例如如下语句:
ContentValues
values=new
ContentValues();
values.put("name","孙悟空"):
values.put("age",500);
//返回新添记录的行号,该行号是一个内部直,与主键id无关,发生错误返回-1
long
rowid=db.insert("person_inf",null,values);
2、使用update方法更新数据
SQLiteDatabase的update方法签名为update(String
table,ContentValues
values,String
whereClause,String[]
whereArgs),这个更新方法的参数说明如下:
table:代表想要更新数据的表名。
values:代表想要更新的数据。
whereClause:满足该whereClause子句的记录将会被更新。
whereArgs:用于为whereArgs子句传递参数。
例如我们想要更新person_inf表中所有主键大于20的人的人名,可调用如下方法:
ContentValues
values=new
ContentValues();
//存放更新后的人名
values.put("name","新人名");
int
result=db.update("person_inf",values,"_id>?",new
Integer[]{20});
3、使用delete方法删除记录
SQLiteDatabase的delete方法签名为delete(String
table,String
whereClause,String[]
whereArgs),这个删除的参数说明如下:
table:代表想删除数据的表名。
whereClause:满足该whereClause子句的记录将会被删除。
whereArgs:用于为whereArgs子句传入参数。
删除person_inf表中所有人名以孙开头的记录
int
result=db.delete("person_inf","person_name
like
?",new
String[]{"孙_"});
4、使用query方法查询记录
SQLiteDatabase的query方法签名为Cursor
query(boolean
distinct,String
table,String[]
columns,String
selection,String[]
selectionArgs,String
groupBy,String
having,String
orderBy,String
limit),这个query方法的参数说明如下。
distinct:指定是否去除重复记录。
table:执行查询数据的表名。
columns:要查询出来的列名。
selection:查询条件子句。
selectionArgs:用于为selection子句中占位符传入参数值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:用于控制分组。
having:用于对分组进行过滤。
orderBy:用于对记录进行排序。
limit:用于进行分页。
例如查询出person_inf表中人名以孙开头的数据
Cursor
cursor=db.query("person_inf",new
String[]{"_id,name,age"},"name
like
?",new
String
[]{"孙%"},null,null,"personid
desc","5,10");
cursor.close();

‘贰’ sqlite数据库有啥用。数据库是干啥的

数据库:按照数据结构来组织、存储和管理数据的仓库,通俗的讲就是按照一定的结构来存储数据的。

数据库(database,DB):特点 长期存储计算机内,有组织(具备一定的结构),可共享数据集合

sqlite:轻型的数据库,可以直接嵌入某款应用中,占用内存较小,满足对数据的存储,查询需要。

‘叁’ SQLite数据库操作 使用SQLite数据库,创建一个User.db的数据库

如果用Navicat的话,直接新建链接,输入链接名,选择新建数据库文件,指定一个db数据库文件路径即可;
如果用程序创建的话,会调用sqlite提供的库文件,不同语言的写法上不太一样,不好举例

‘肆’ 怎么使用SQLiteStudio来管理Sqlite数据库

下载sqliteStudio,解压,如图,打开sqliteStudio.exe 即可使用

打开,

新建数据库,点击database-add database

输入数据库名,点击OK

点击数据名,在Table 右击,然后create a table

设置数据库的如图所示,大家可以详细的了解了。

‘伍’ Studio中怎么使用已经有的SQLite数据库

可以尝试把db文件放到assets文件夹下,直接当做资源来读取。参考一下代码:

public class DataBaseHelper extends SQLiteOpenHelper {
private Context mycontext;

//private String DB_PATH = mycontext.getApplicationContext().getPackageName()+"/databases/";
private static String DB_NAME = "(datbasename).sqlite";//拓展名可以是.sqlite 或者是 .db
public SQLiteDatabase myDataBase;
/*private String DB_PATH = "/data/data/"
+ mycontext.getApplicationContext().getPackageName()
+ "/databases/";*/

public DataBaseHelper(Context context) throws IOException {
super(context,DB_NAME,null,1);
this.mycontext=context;
boolean dbexist = checkdatabase();//首先判断下db是不是存在 存在的话就直接使用了
if (dbexist) {
//System.out.println("Database exists");
opendatabase(); //直接打开
} else {
System.out.println("Database doesn't exist");
createdatabase();//否则的话才去创建新的db
}
}

public void createdatabase() throws IOException {
boolean dbexist = checkdatabase();
if(dbexist) {
//System.out.println(" Database exists.");
} else {
this.getReadableDatabase();
try {
database();
} catch(IOException e) {
throw new Error("Error ing database");
}
}
}

private boolean checkdatabase() {
//SQLiteDatabase checkdb = null;
boolean checkdb = false;
try {
String myPath = DB_PATH + DB_NAME;
File dbfile = new File(myPath);
//checkdb = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE);
checkdb = dbfile.exists();
} catch(SQLiteException e) {
System.out.println("Database doesn't exist");
}
return checkdb;
}

private void database() throws IOException {
//Open your local db as the input stream
InputStream myinput = mycontext.getAssets().open(DB_NAME);

// Path to the just created empty db
String outfilename = DB_PATH + DB_NAME;

//Open the empty db as the output stream
OutputStream myoutput = new FileOutputStream("/data/data/(packagename)/databases /(datbasename).sqlite");

// transfer byte to inputfile to outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myinput.read(buffer))>0) {
myoutput.write(buffer,0,length);
}

//Close the streams
myoutput.flush();
myoutput.close();
myinput.close();
}

public void opendatabase() throws SQLException {
//Open the database
String mypath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);
}

public synchronized void close() {
if(myDataBase != null) {
myDataBase.close();
}
super.close();
}

}

‘陆’ 如何使用SQLite

前些时候看到兴趣小组里有人问“Android上SQLite的最佳实践”是什么,好奇地搜了一下,确实没有一个好一点的指导文档,平时的使用也只是简单的拷贝code,并没有深入的研究过。以下是我看到的Kevin关于其使用的心得,原文的大体的意思是:Android例子涵盖了一些Sqlite的基本用法,但它们并没有深入地给出合理的使用方法,更重要的是,不合理的使用方法。大多数例子和文档只是涉及最基本的数据库查询,或者教你如何创建一个ContentProvider。从来不提及的地方像: · 什么地方创建和保存SQLiteOpenHelper实例? · 可以有多少个实例? · 多线程同时访问数据库有没有什么要担心的?基本的内容是,你可以任意次数地连接Sqlite数据库,而且Android系统也支持你这样做。Sqlite拥有文件级别的锁,用来同步访问和防止错误。如果你只知道这些,那么,将会给你带来很大的痛苦。开源的一个好处是,你可以深入代码一探究竟。从代码和一些测试中,我了解到以下事实: · Sqlite拥有文件级别的锁。许多线程可以同时读,但只有一个可以写。锁阻止多个同时写入。 · Android在SQLiteDatabase中实现了一些java锁来确保动作是同步进行。 · 如果你用多个线程疯狂地访问数据库,你的数据库不会(或不应该)崩溃。没提到的是,如果你通过多个不同的真实连接同时写数据库,其中的某个会失败,它不会等到前一个完成后继续写入。简单地,不会写入你的改变,更糟糕的是,你也得不到一个异常,只是在LogCat中输出一些message,仅此而已。SQLiteOpenHelper类做了一些有趣的事。尽管它有方法可以获得一个只读的连接和可读写的连接,但实质上它们是同一个连接。假设没有文件写错误的话,只读的连接实质上就是一个可读写的连接。有趣吧。因此,如果你的app中使用一个helper的话,即便从多线程中使用,你也从未使用多个连接。同样,一个helper中只有一个SQLiteDatabase的实例,这个实例中实现了一些java锁。因此,当你正在执行数据库的操作时,其它db的操作都将锁定。即便是你使用多个线程来做这些事以便优化数据库的性能,坏消息,没有什么用。按照我的认识,SQLite工作的方式,基本上不可能会破坏你的数据库,除非代码里有bug或者有硬件问题。因此,我推荐这样使用:创建一个SQLiteOpenHelper静态对象。什么时候去close它呢?不需要。当app关闭,它会自动释放文件引用。但是,会不会有“close() was never explicitly called on database”异常呢?如果你注意的话,当连接挂在那里的时候,你没有得到那个异常。你只是在连接已经建立,而你又尝试打开另一个时才会有异常。因此,你只需要打开一次连接。像这样来使用:public class DatabaseHelper extends OrmLiteSqliteOpenHelper{ private static DatabaseHelper instance; public static synchronized DatabaseHelper getHelper(Context context) { if (instance == null) instance = new DatabaseHelper(context); return instance; }//Other stuff... } 就这些。。。

‘柒’ sqlite数据库从安装到使用的方法,因为我看了之后不知道要不要安装了

sqlite数据库是不需要安装的。
使用sqlite程序可以生成一个数据库文件。例如test.db (文件名自己设定,扩展名也无要求)

当然,你的程序必须要支持sqlite,例如php是在配置中设置。

之后就可以在程序中调用sqlite的函数来操作这个文件。

‘捌’ 如何使用sqlite 数据库文件

在我几个Android应用中,我需要访问已有的数据库。这些数据库往往很大,甚至超过asset文件大约1兆字节的限制。而且在新的版本中数据库需要更新。我在网上,特别是StackOverflow看了一些文章,并做了一些试验,觉得下面的代码能基本上满足我的需求。

其主要思路是:

1. 把数据库分解成几个asset文件。

2. 当需要打开数据库时,如果数据库不存在,就把那几个asset文件重新合并成一个数据库文件。

3. 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。下面是代码://数据库的缺省路径

private static finalString DB_PATH = "/data/data/com.mypackage.myapp/databases/";

private static finalString DB_NAME = "mydb.db";

private static finalint DB_VERSION = 2;

private static finalString DB_SPLIT_NAME = "mydb.db.00";

private static finalint DB_SPLIT_COUNT = 3;

private SQLiteDatabasem_database;

private final Contextm_context;

/**

* Constructor

*保存传进来的context参数以用来访问应用的asset和资源文件。

* @param context

*/

public MyDB(Contextcontext) {

super(context, DB_NAME, null, DB_VERSION);

this.m_context = context;

}

public static MyDBopenDatabaseReadOnly(Context context) {

MyDB db = new MyDB(context);try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}db.openDataBase(SQLiteDatabase.OPEN_READONLY);

return db;

}

public static MyDBopenDatabaseReadWrite(Context context) {

MyDB db = new MyDB(context);try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}db.openDataBase(SQLiteDatabase.OPEN_READWRITE);

return db;

}

/**

*创建一个空数据库,用来存储你已有的数据库。

*/

public voidcreateDataBase() throws IOException{

boolean dbExist =checkDataBase();

if (dbExist) {

/*

**如果你的数据库的版本改变了,调用这个方法确保在onUpgrade()被调用时

**传进去的是可写的数据库。

*/

SQLiteDatabase db =this.getWritableDatabase();if (db != null) {

db.close();

}

}dbExist = checkDataBase();if (!dbExist) {

‘玖’ sqlite数据库什么时候用

如果是本地数据的需求用SQlite,如果像登陆有用验证或者网络间共享数据的话,就需要调用WebService与后台服务器数据交互,这两种数据是没有联系的。一个是本地数据库,一个是服务器端数据库。本地用数据库就是SQlite,别的不太可能,终端没有那么高的性能,再说甲骨文公司也没出手机端oracle啊。
如果你的数据是已知的,静态的,没有太多的变化,满可以在本地SQlite中存储、读取。这样不会因网络问题而降低效率和成功率。如果数据未知、有实时的变化或者有与其他用户交互、共享的数据必然需要后台服务器数据。

‘拾’ 如何使用sqlite创建数据库

1.首先你需要去下载一个 Navicat for SQLite ,怎么下载这里我不多说,你可以去网络搜索。最好下载绿色版。搜索 “Navicat for SQLite 绿色版”。

2.下载后,右击软件包进行解压缩

3.下载后双击文件夹,打开文件目录,找到 navicat.exe 这个主程序,右击在弹出菜单依次点击【发送到(N)】--->【桌面快捷方式】。

4.这时你的电脑桌面就多了一个 navicat.exe 的快捷方式图标,以后需要打开,直接点击这个快捷方式就可以了。

5.双击桌面快捷方式,打开软件,在软件左上角点击【连接】按钮,点击后弹出新建连接对话框。

6.在弹出窗口中输入【连接名】,选择【类型】-然后在下面选择数据库文件,或者数据库保存位置。

7.这样就在你的指定位置创建了一个Sqlite数据库文件了,有了这个数据库文件你可以做任何数据库的操作了。

热点内容
电脑版我的世界如何退出服务器 发布:2024-11-15 23:00:39 浏览:312
哪里有存储器零售商 发布:2024-11-15 22:55:42 浏览:46
手机如何设置锁屏密码个性 发布:2024-11-15 22:44:08 浏览:417
mysql导入存储过程 发布:2024-11-15 22:43:18 浏览:638
net连接数据库代码 发布:2024-11-15 22:40:16 浏览:61
编程计算nk 发布:2024-11-15 22:35:07 浏览:833
数据库第一章 发布:2024-11-15 22:27:07 浏览:593
测试php性能工具 发布:2024-11-15 22:19:37 浏览:580
安卓手机怎么给王者荣耀差评 发布:2024-11-15 22:16:47 浏览:270
c调用python返回 发布:2024-11-15 22:14:23 浏览:943