android 本地数据库sqlite的封装
单机android sqlite数据库的实现,这个数据库可与程序一起生成在安装包中
一、下载sqlite3.exe文件
二、运行 cmd 转到sqlite3.exe 所在目录 运行 sqlite3.exe 数据库名.db
然后会出现sqlite>的命令提示符
输入创建表的语句, create table 表名(‘列’,‘列’。。。);(注意: 要在结束部分加 分号 )
此时会在sqlite3.exe 所在目录,出现所建数据库的文件
三、如果想在Android中运行的话,需要在数据库中增添
CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'zh_CN')
INSERT INTO "android_metadata" VALUES ('zh_CN') 四、将数据库 复制到 Android项目中res/raw中 五、下面是代码:
public class TestSqlDatabase{
private static final String DATABASE_PATH = "/data/data/your.package.name/databases"; //此处不要改动,这个为数据库在手机上的物理地址
private static final int DATABASE_VERSION = 0;
private static final String DATABASE_NAME = "test.db"; //此处为数据库名称
private static String outFileName = DATABASE_PATH + "/" + DATABASE_NAME;
private Context context;
private SQLiteDatabase database;
public TestSqlDatabase(Context context) {
this.context = context;
File file = new File(outFileName);
if (file.exists()) {
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
if (database.getVersion() != DATABASE_VERSION) {
database.close();
file.delete();
}
}
try {
buildDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
private void buildDatabase() throws Exception{
InputStream myInput = context.getResources().openRawResource(R.raw.test);
File file = new File(outFileName);
File dir = new File(DATABASE_PATH);
if (!dir.exists()) {
if (!dir.mkdir()) {
throw new Exception("创建失败");
}
}
if (!file.exists()) {
try {
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
myOutput.close();
myInput.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 查找
* @return
*/
public Cursor select() {
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
String sql = "select * from note_table";
Cursor cursor = database.rawQuery(sql, null);
return cursor;
}
/**
* 插入
* @param word
* @param note
* @return
*/
public long insert(String word, String note) {
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
ContentValues cv = new ContentValues();
cv.put("word", word);
cv.put("note", note);
long result = database.insert("note_table", null, cv);
return result;
}
/**
* 更新
* @param word
* @param note
* @return
*/
private int update(String word, String note) { //参数 word 为修改条件 note为修改内容
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
ContentValues cv = new ContentValues();
cv.put("note", note);
int result = database.update("note_table", cv, "word=?", new String[]{word});
return result;
}
/**
* 删除
* @param word
*/
public int deleteNote(String word) {
database = SQLiteDatabase.openOrCreateDatabase(outFileName, null);
int result = database.delete("note_table", "word=?", new String[]{word});
return result;
}
public void close() {
database.close();
}
}
android 本地数据库sqlite的封装的更多相关文章
- android本地数据库,微信数据库WCDB for Android 使用实例
android本地数据库,微信数据库WCDB for Android 使用实例 Home · Tencent/wcdb Wikihttps://github.com/Tencent/wcdb/wiki ...
- [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...
- Xamarin.Android 本地数据库 SQLiteDatabase 操作
目的:使用 SQLiteDatabase 创建本地数据库.表,并对数据进行增删改查操作. 引用命名空间: using Android.App; using Android.Widget; using ...
- QT 创建本地数据库(SQLite数据库)存储数据
注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include &l ...
- android 建数据库 SQLite 存储sd 卡或者内存
android 创建数据库调用SQLiteOpenHelper,一般不直接操作SQLiteDatabase . 是通过SQLiteOpenHelper来获取 public class DBOpenHe ...
- 轻量级本地数据库SQLite在WinRT的使用
开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...
- android之数据库SQLite(一)
创建数据库 首先定义SQLiteOpenHelper的子类 代码如下: package com.example.myandroid; import android.content.Context; i ...
- Android中数据库Sqlite的性能优化
1.索引简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率.(1). 优点大大加快了数据库检索的速度,包括 ...
- android 构建数据库SQLite
1.首先我们需要一个空白的eclipse android工程 2.然后修改AndroidManifest.xml 在<application></application>标签里 ...
随机推荐
- 上传图片转为base64格式预览并压缩图片(不兼容IE9以下浏览器,兼容移动端ios,android)
前些天公司要求在微信移动端做上传图片并预览的功能,要求能够调用摄像头拍照并立即预览. 在网上搜了一些方法,开始自己写了个简单的功能实现代码.结果发现移动端拍照出来的图片动不动就2M+,又因为要批量上传 ...
- Masonry适配的简单使用
一.Masonry是什么: 答:是一个很好的三方,用来做适配的 二.怎么使用Masonry 1.先导入头文件 #define MAS_SHORTHAND #define MAS_SHORTHAND_G ...
- nlog学习使用
最近有不少朋友推荐我用NLog.我以前都是自己写txt的文本输出log,以前别人用log4net的时候看那个配置文件,看得我一阵烦,我比较喜欢约定胜于配置的组件.这次玩了一波NLog,,相当不错.一下 ...
- Python爬虫 Cookie的使用
Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么 ...
- js 模板引擎
template = document.querySelector('#template').innerHTML, result = document.querySelector('.result') ...
- Java与面向对象之随感(2)
我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...
- Java 基础知识总结
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- CTF 字符统计2
题目地址:http://sec.hdu.edu.cn/question/web/1076/ 这一题跟上一篇那题有点相似,查看一下源代码: 发现字符产所处的HTML标签变了,还有就是上一题是get请求, ...
- 封装Web Uploader 上传插件、My97DatePicker、百度 编辑器 的使用 (ASP.NET MVC)
Web Uploader: WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优 ...
- Oracle空间查询 ORA-28595
可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL).数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息. 例如,在ArcMap中我们使用&quo ...