文档章节

使用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
海淀
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
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
受 SQLite 多年青睐,C 语言到底好在哪儿?

SQLite 近日发表了一篇博文,解释了为什么多年来 SQLite 一直坚持用 C 语言来实现,以下是正文内容: C 语言是最佳选择 从2000年5月29日发布至今,SQLite 一直都是用 C 语言实现。C 一直是实...

王练
08/31
0
0
SQLite学习手册(命令行工具)

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

柠檬酷
2015/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
0
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
5
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
0
0
emoji

前言:随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编...

HeroHY
昨天
2
0
rabbitmq学习(二)

生产者消费者初级案列 ChannelUtils package com.hensemlee.rabbitmq;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Connecti......

hensemlee
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部