文档章节

使用SQLite(1)

c
 chuiyuan
发布于 2014/04/23 21:28
字数 470
阅读 23
收藏 0

一. 创建和删除库

1.创建库

两个方法,openOrCreateDatabase  和AQLiteHelper 。后者更强大 ,先说第一个。

ContextWrapper.openOrCreateDatabase(String name ,int mode, CursorFactory factory);

name :数据库的名字,后缀名为.db.

mode :一般为SQLiteDatabase.CREATE_IF_NECESSARY

factory :工厂类的对象 ,在查询时通过这个 创建 一个Cusor类。现在不用,null

例子:

SQLiteDatabase  db = openOrCreateDatabase ("mydatabase.db",SQLiteDatabase.CREATE_IF_NECESSARY,null)

2. 保存的地方 

data/data/packagename/database

3.设置数据库

线程安全

 db.setLockingEnable(true);

版本

db.setVersion(1);

4.关闭数据库

db.close();

如果以后 不用了,可以删除 

Context.deleteDatabase();   不要将删除 数据库与删除表搞错、


二. 创建玫删除表

1.在创建了数据库后,就是创建表。方法是执行sql语句 。如

CREATE TABLE  userInfo_brief (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT ,
password TEXT );

对应的java如下
String TABLENAME_1 ="userInfo_breif" ;
String ID ="id" ;
String NAME ="name";
String PASSWORD ="password";
String sql = "CREATE TABLE "+TABLENAME_1 +"("+
ID+" INTEGER PRIMARY KEY AUTOINCRENMENT ,"+
NAME+"  TEXT);";

   db.execSQL(sql);

写完了sql后执行语句 

SQLiteDatebase.execSQL(sql);

用来执行非查询语句 。

2.删除 表

SQL语句为

DROP TABLE userInfo_brief ;

对应的java为

String sql = "DROP TABLE "+TABLENAME_1+";";
db.execSQL(sql


三。操作记录
insert() ,update() ,delete()

  1. insert ()

SQLiteDatabase.insert(String table ,String nullColumnHack ,ContentValues values)

ContentValues类似 于 HashMap 。使用如下 

ContentValues values = new ContentValues ();
values.put(NAME ,"lsj");
values.put(PASSWORD, "123");
db.insert (TABLENAME_1, null, values);

2.update()

SQLiteDatabase.update(String table ,ContentValues values ,String whereclause ,String [] whereArgs)

eg:

ContentValues values=new ContentValues ( );
values.put(PASSWORD ,"1234");
db.update (TABLENAME_1 ,values ,NAME= "?" ,new String []{"hshs"} );

3. delete

SQLiteDatabase.delete (String table , String whereClause ,Stirng [] whereAgs )

eg:

db.delete( TABLENAME_1 ,NAME="?" ,new String [] {"lsj"} );

 如果删除 所有 的,则为

db.delete (TABLENAME_1 , null ,null );

4. 同时执行多个语句 ,引入 事务

如,我们要执行

delete -> insert -> update (the inserted)

当执行没有成功的时候 ,要不改变原来的数据 ,引入了事务

事务的作用:当执行一系列操作的时候 ,要么全部执行成功,要么都不执行。



© 著作权归作者所有

共有 人打赏支持
c
粉丝 9
博文 92
码字总数 40993
作品 0
海淀
ODB(C++ ORM)用Mingw的完整编译过程

用mingw官方的GCC4.7.2编译libodb后,并用odb compiler对hello示例生成odb的"包裹"代码,编译链接总是不能通过,下面是编译example/hello报错的信息如下: libodb-sqlite-2.3.0/odb/sqlite -o d...

棋有此理
2013/12/14
0
0
Android 小项目之--SQLite 使用法门

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库 --大名鼎鼎的SQLite。SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资...

mayi
2011/11/14
0
2
手机开发-如何查看android数据文件和数据库

在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看。android项目中的sqlite数据库位于/data/data/项目包/databases中。 工具/原料 doc命令adb工具,ecl...

娶到笨笨
2014/03/14
0
0
SQLite学习手册(命令行工具)

工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下...

柠檬酷
2015/07/14
0
0
【原创】如何在 libgda 和 SQLite 之间作出选择

How to choose between Libgda and SQLite 如何在 libgda 和 SQLite 之间作出选择 (本文为官方文档翻译,以中英对照形式呈现) Libgda has been added as a new external dependency for G...

摩云飞
2013/03/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg调试C源码级驱动

联机方式不多说了。我博客里有,英文的。 windbg联机文档 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel......

simpower
39分钟前
0
0
redis快照和AOF简介

数据持久化到硬盘:一是快照(snapshotting),二是只追加文件(append-only file AOF) 快照 核心原理:redis某个时间内存内的所有数据写入硬盘 场景:redis快照内存里面的数据 1. 用户发送bgsav...

拐美人
39分钟前
0
0
这个七夕,送你一份程序员教科书级别的告白指南

给广大爱码士们的高能预警: 今天,就是七夕了…… (单身非作战人群请速速退场!) 时常有技术GG向个推君抱怨 经过网民多年的教育 以及技术人持之以恒的自黑 冲锋衣狂热分子·格子衫骨灰级粉...

个推
44分钟前
0
0
python爬虫日志(15)cookie详解

转载:原文地址 早期Web开发面临的最大问题之一是如何管理状态。服务器端没有办法知道两个请求是否来自于同一个浏览器。那时的办法是在请求的页面中插入一个token,并且在下一次请求中将这个...

茫羽行
45分钟前
0
0
qlv视频格式转换器

  腾讯视频中的视频影视资源有很多,小编经常在里面下载视频观看,应该也有很多朋友和小编一样吧,最近热播的电视剧也不少,如《香蜜沉沉烬如霜》、《夜天子》还有已经完结的《扶摇》,这么...

萤火的萤火
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部