当前位置:文档之家› PHP进行SQLite实例教程

PHP进行SQLite实例教程

PHP进行SQLite实例教程
PHP进行SQLite实例教程

PHP进行SQLite实例教程

PHP进行SQLite实例教程文章录入:https://www.doczj.com/doc/4511375315.html, 责任编辑:https://www.doczj.com/doc/4511375315.html, 63【字体:小大】本教程将向你介绍SQLite API所支持的重要方法,提供一个能够用在你开发中的简单脚本模板,从而告诉你如何使用PHP与SQLite数据库进行交互操作。本文假设你已经安装好了Apache和PHP。

你的系统上并不是一定非要安装可交互的SQLite 程序;但是为了能够简化创建本教程所需要的一系列初始表格,你应该下载和安装这个程序。然后,为你的SQL查询创建一个示例表格,方法是创建一个空白的文本文件,将该文件名作为下列命令(列表A)的参数在交互命令提示符下执行二进制程序:

sqlite> CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, country TEXT);

sqlite> INSERT INTO users VALUES (1, 'john', 'IN'); sqlite> INSERT INTO users VALUES (2, 'joe', 'UK'); sqlite> INSERT INTO users VALUES (3, 'diana', 'US');一旦表格创建好了,下面就是使用PHP的SQLite方法建立一个脚本模板。

<?php

// set access parameters

$db = "users.db";

// open database file

// make sure script has read/write permissions!

$conn = sqlite_open($db) or die ("ERROR: Cannot open database");

// create and execute INSERT query

$sql = "INSERT INTO users (id, username, country) VALUES ('5', 'pierre', 'FR')";

sqlite_query($conn, $sql) or die("Error in query execution: " . sqlite_error_string(sqlite_last_error($conn)));

// create and execute SELECT query

$sql = "SELECT username, country FROM users"; $result = sqlite_query($conn, $sql) or die("Error in query execution: " . sqlite_error_string(sqlite_last_error($conn))); // check for returned rows

// print if available

if (sqlite_num_rows($result) > 0) {

while($row = sqlite_fetch_array($result)) {

echo $row[0] . " (" . $row[1] . ") ";

}

}

// close database file

sqlite_close($conn);

?>在使用PHP的SQLite扩展执行SQL查询的时候,要按照下列四个简单步骤进行:

1.调用sqlite_open()函数来初始化数据库句柄。数据库的路径和文件名(要记住,SQLite是基于文件的,而不是像MySQL那样基于服务器)被作为自变量传递给函数。

2.创建SQL查询字符串,用sqlite_query()函数执行它。这些方法的结果对象会依据查询的类型以及它是否成功而有所不同。成功的SELECT查询会返回一个结果对象;成功的INSERT /UPDATE/DELETE查询会返回一个资源标识符;不成功的查询会返回“伪”。sqlite_error_string()和sqlite_last_error()方法能够被用来捕捉错误并显示相应的错误信息。

3.对于SELECT查询,结果对象可以被进一步处理,以便从中提取数据。当sqlite_fetch_array()函数用在循环里的时候会把每条记录作为PHP的数组取回。你可以通过调用数组合适的键来访问每条记录的各个字段。

4.调用

sqlite_close()函数可以结束会话。

PHP 5.x的一个创新之举是加入了SQLite数据库引擎。SQLite是一个基于文件的、功能齐全的可移植数据库引擎,它能够被用来进行绝大多数SQL操作而不会加重客户端-服务器通信的负载。PHP 5.x里的这个SQLite API在默认情

况下会被激活,这也意味着你可以立即就使用SQLite。

希望这个脚本模块能够在你下一次坐下来用PHP编写SQLite连接/交互例程的时候为你节省一些时间。编程愉快!您对本文章有什么意见或着疑问吗?请到论坛讨论您的关

注和建议是我们前行的参考和动力

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解 17_创建数据库与完成数据添删改查--------------------------------------1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER n n 、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型 n n 只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不 n n 过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数n n 据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的 n n 字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。n n n 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段 n n 保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时, n n 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段 n n 的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar n n (20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order byn n n 排序子句如:select * from person n n n n select * from person order by id desc n n n n select name from person group by name having count(*)>1 ---------------------------------------------------------------------------2.a.分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录n n select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 n b.select * from Account limit 3,5,指的是跳过前面的3条记录,然后获取5条记录n c.select * from Account limit 3,5是select * from Account limit 5 offset 3语句 n n 的简写版 -------------------------------------------------------------------------------n 3.常用操作: a.插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person nn n n (name, age) values(‘传智’,3) b.更新语句:update 表名 set 字段名=值where 条件子句。如:update person set name=n n n n'credream ‘where id=10 c.删除语句:delete from 表名 where 条件子句。如:delete from person nwhere id=10 -------------------------------------------------------------------------------2.虽然无数据类型,但是建议加上,这样可以增加可读性,支持标准sql,oracle中的不行 ---------------------------------------------------3.获取添加记录后的自增长的ID值:select last_insert_rowid(); -----------------------------------------------------------4.在android中开发数据库应用: n a.创建数据库:以前在javaee时候,需要手工数据,但是android应用,需要运行在用户的 n n 手机上,所以,android应用,要有自动创建数据库功能,当第一次使用软件的时候 n n 就创建数据库----------------------------------------5.关于数据库自动创建的详细介绍: 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很 n n 多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出 n n 应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据 n n 表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机 n n 上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方 n n 式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我 n n 们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版 n n 本进行管理来实现前面提出的需求。n -----------------------------------------6.SQLite数据库添加,删除,改查操作 n A.创建数据库:SQLiteOpenHelper .getWritableDatabase ()或getReadableDatabase() n n 可以创建数据库7.创建完成以后可以使用SQLITE Expert软件打开生成的数据库n 可以看到除了生成的自己的需要的表之外,还生成了一张:android_metadata表: n 如果在sqlite中使用数据库一定会有一张android_metadata表,用来登记用户的 n 使用语言:zh_cn -----------------------------------------------------n b.数据库自动创建的过程及方法详细介绍: n n我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在 n n 很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建 n n 出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数n n 据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手 n n 机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工 n n 方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为n n 我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库n n 版本进行管理来实现前面提出的需求。n -------------------------------------------8.详细介绍: 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是 n n onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, intn n n newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结n n 构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获n n 取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生 n n 成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用 n n ,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 n n onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号, n n 而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数n n 据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为n n 了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如 n n 果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本 n n 升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后 n n 作出相应的表结构及数据更新。 getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 n n SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库n n 的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就 n n 会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了 n n ,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。 ------------------------------------------------------------------------9.创建数据库的代码: n a.创建项目:DBSQLIte n b./DBSQLIte/src/com/credream/service/DBOpenHelter.java n n package com.credream.service; n n import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; n n public class DBOpenHelter extends SQLiteOpenHelper { //父类没有默认构造器,需要显示调用 public DBOpenHelter(Context context) { super (context, "credream.db", null, 1); //数据库创建完成后,默认会保存在<包>/database/文件夹下 //当修改版本号时候,会触发:onUpgrade方法 //第二个:指定数据库名称, //第三个:游标工厂,用来迭代,查询后的结果集,null代表使用系统默认的 n n 游标工厂//版本号,大于0 n } /** n* 这个方法是在数据库第一次被创建的时候调用的 n*/ @Override public void onCreate(SQLiteDatabase db) { //SQLiteDatabase这个类,封装了增删改查操作,也叫做数据库操作实例 db.execSQL("CREATE TABLE person (personid integer primary keyn n n autoincrement, name varchar(20))"); //这里也可以不写name的数据类型,因为sqlite是数据类型无关的,就是写n n 了varchar(20),也可以写入超过20的内容 n n } /** n* 当数据库的版本号变更的时候被调用 n*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table person add phone varchar(12) null"); n n } n n } --------------------------------------------------------2.在清单文件中写入测试环境 n n n n n n n n n n ---------------------------------------------------- 3./DBSQLIte/src/com/credream/test/PersonServiceTest.java package com.credream.test; n n import com.credream.service.DBOpenHelter; n n import android.test.AndroidTestCase; n n public class PersonServiceTest extends AndroidTestCase { //创建数据库,在<包>/database/ public void testCreateDB(){ DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n } n n } -------------------------------------------------------4.选择方法开始测试,然后,在data/data/<包>/database/下 n 查看并用sqlite打开生成的数据库检查是否正确---------------------------------------------然后将版本号,改成2,然后再次执行,看到,表已经被更新,增加了一列phone -----------------------------------------------5.了解sqlite工作的原理: n DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n 打开getWritableDatabase();代码:

Android实验报告_基于SQLite的通信录

第一次实验Android界面设计 一. 实验目的及实验环境 1. 实验目的 1)掌握SQLiteOpenHelper类结构 2)掌握基于SQLite数据库的应用开发过程 3)掌握Content Provider发布数据的方法 4)掌握Content Resolver获取数据的方法 2.实验环境 系统开发平Android Studio 3.0 系统开发平台:Android 7.1 运行平台:Windows10 x64 运行环境:https://www.doczj.com/doc/4511375315.html, Framework SDK 2.0 二. 实验教材、组织方式、实验容 1.实验教材:Andorid开发与应用 2.组织方式:个人独立完成 2.实验容: 实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。 三.方案设计 Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver来获取共享数据。

四.运行结果

五.总结 通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver 获取数据的方法。 六.附录:源代码 主布局文件activity_main.xml:

Android 实验报告 Sqlite 数据库操作

2、掌握Android的SQLite数据库设计; 3、掌握Android的Activity 和Fragement用法; 4、熟悉XML 和JSon 文件读取 三、实验内容 要求使用SQLite数据库实现用户注册和登录,读取数据库信息,退出时生成XML文件或JSON文件。 四、实验过程和结果 content_main.xml: MainActivity.java: RegisterActivity.java: public class RegisterActivity extends Activity { SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/4511375315.html,yout.content_register); /*start*/ db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/user.db3", null); /**/ Button register = (Button)findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = ((EditText)findViewById(https://www.doczj.com/doc/4511375315.html,ername)).getText().toString(); String password = ((EditText)findViewById(R.id.password)).getText().toString(); try{ String sql = "create table if not exists user_info (_id integer " + " primary key autoincrement," + " username varchar(255)," + " password varchar(255)" + ")"; db.execSQL(sql); sql = "insert into user_info values( null,?,?)";

SQLite语法与Android数据库操作

SQLite语法与Android数据库操作 学习android的小伙伴们在使用Android的SQLiteDatabase类进行数据库操作的时候总会有一些力不从心,特别是对于初涉数据库的小伙伴来说更是如此。 这是因为Android的SQLiteDatabase原本就不是依赖于Android而存在的,而是单独的作为一个个体而存在的,有着自己特有的体系和语言,而这就是SQL 语法了。 关于SQLite数据库的理论知识网上一搜一大片,这里就不多说。SQLite是一个轻量型的数据库,它对于大型数据库来说功能少,因此只需要学习一些通用的SQL语法就能够轻松掌握,而这些SQL语法对于其他的数据库来说也是基本不变化的。 但SQLite有个缺点,那就是作为轻量级选手的它,如果要保存大量数据会力有不及,因此它在android中适合保存个人设置等没有大量数据的信息。 好了,下面就是正式学习SQLite了,只有掌握了SQLite,掌握SQL语法,才能对Android中的数据库操作运用自如。 SQLite的数据类型 与Java语言一样,SQLite也有其特有的数据类型,当然相比MySQL来说只有5种数据类型算是很少了 NULL:空值相当于Java中的null INTEGER:带符号的整型,相当于Java中的int型 REAL:浮点数字,相当于Java中float/double型 TEXT/VARCHAR:字符串文本,相当于Java中String类 BLOB:二进制对象,相当于Java中的byte数组,用于存放图片、声音等文件 Sqlite3中的约束 SQLite的约束是什么呢?约束就是限定数据库字段的条件,如果有个student数据表,它里面有一个age年龄的属性字段,我们要求数据库保存age 这个字段的时候必须有值,不能为空,那么就可以设置为:"age INTEGER NOT NULL"。这句话的意思就是age字段是不能为空的整型 NOT NULL :非空

Android面试之SQLite数据库

Android面试之SQLite数据库 鹭岛厦门是个很美丽的海滨城市,给我的感觉很舒适和悠闲,据说政府对到那工作的高新技术人才第一年有10万元的奖励,因为这个原因我很有兴趣的参加了一个厦门公司的面试。他们主要是研发VOIP方面的技术,对手机应用的性能优化和音频算法有较高的要求。 他们招人的薪资半年内涨了30万元,都一直都没有招到合适的人。为什么呢?因为他们要求技术好的同时,英语也要好。什么才叫好呢?就是可以用流利的英语和国外的团队无障碍交流。 这就为难很多程序员了。这里就不再讲英语的励志故事了,我们回到技术面试上。厦门这家公司对技术的要求还是比较高,问了很多对Android机制的理解问题,为什么面试官很在意对机制的理解呢?因为实际的项目中很多性能问题都是由于缺乏对Android运行机制的正确理解的程序员引发的。除了机制问题,现在印象比较深的就是关于SQLite数据库操作的性能优化问题。 面试题:如何对SQLite数据库中进行大量的数据插入? Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。SQLite是一个轻量的、跨平台的、开源的数据库引擎。SQLite每个数据库都是以单个文件(.db)的形式存在,这些数据都是以B-Tree 的数据结构形式存储在磁盘上。 使用SQLiteDatabase的insert,delete等方法或者execSQL方法默认都开启了事务,如果操作的顺利完成才会更新.db数据库。事务的实现是依赖于名为rollback journal文件,借助这个临时文件来完成原子操作和回滚功能。 大家可以在/data/data//databases/目录下看到一个和数据库同名 的.db-journal文件。 SQLite想要执行操作,需要将程序中的SQL语句编译成对应的SQLiteStatement,比如" select * from table1 ",每执行一次都需要将这个String类型的SQL语句转换成SQLiteStatement。如下insert的操作最终都是将ContentValues转成SQLiteStatementi: public long insertWithOnConflict(String table, String nullColumnHack, ContentValues initialValues, int conflictAlgorithm) { // 省略部份代码

android中使用sqlite

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--大名鼎鼎的SQLite。SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可能只需要几百KB,这也是Android 系统采用SQLite 数据库的原因之一吧。 简介 ?轻量级 使用SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那 个动态库的尺寸想当小。 ?独立性 SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安 装”。 ?隔离性 SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个 文件夹内,方便管理和维护。 ?跨平台 SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系 统也是能够运行,比如:Android。 ?多语言接口 SQLite 数据库支持多语言编程接口。 ?安全性 SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。 这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一 个可以写入数据。 SQLite使用介绍 首先先来看一下本篇例子继承SQLiteOpenHelper 类实现的dbHelper 类。 package com.terry; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;

Android SQLite使用

Android 开发中使用SQLite 数据库 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。 图 1. SQLite 内部结构 SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQLite。 SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。

?构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。 ?onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。 ?onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。 下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库:

Android中SQLite使用方法

Android中SQLite使用方法 分享一下在Android中如何使用SQLite。 现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取。 下面就向大家介绍一下SQLite常用的操作方法,为了方便,我将代码写在了Activity的onCreate中: [java]view plaincopyprint? 1.@Override 2.protected void onCreate(Bundle savedInstanceState) { 3.super.onCreate(savedInstanceState); 4. 5.//打开或创建test.db数据库 6.SQLiteDatabase db = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null); 7.db.execSQL("DROP TABLE IF EXISTS person"); 8.//创建person表 9.db.execSQL("CREATE TABLE person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)"); 10.Person person = new Person(); https://www.doczj.com/doc/4511375315.html, = "john"; 12.person.age = 30; 13.//插入数据 14.db.execSQL("INSERT INTO person VALUES (NULL, ?, ?)", new Object[]{https://www.doczj.com/doc/4511375315.html,, person.age}); 15. https://www.doczj.com/doc/4511375315.html, = "david"; 17.person.age = 33;

最新Android开发中使用SQLite数据库

A n d r o i d开发中使用 S Q L i t e数据库

Android 开发中使用 SQLite 数据库 简介: SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android 在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对数熟悉 SQL 的开发人员来时,使用 SQLite 相当简单。可以,由于 JDBC 不适合手机这种内存受限设备,所以 Android 开发人员需要学习新的 API 来使用 SQLite。本文主要讲解 SQLite 在 Android 环境中的基本使用。 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。 图 1. SQLite 内部结构

SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQLite。 SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。 此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。

ANDROID开发之SQLITE数据库的使用

宁波工程学院电信学院计算机教研室 实验报告三 课程名称:3G OS应用及开发实验项目:SQLite数据库的使用指导教师:刘良旭实验位置:计算中心软件工程实验室实验日期:2012.6.3 实验主要内容与具体分工: 黄鼎民:代码实现 金建超:界面设计 唐成:程序调试及程序测试 王禹:撰写实验报告 指导教师评语

一、实验过程 1、实现思想 通过一个个人通讯录的案例来说明Android平台下进行数据库开发的相关知识,该个人通讯录主要包括联系人列表和联系人详细信息等界面。 2、功能设计 本程序是一个个人通讯录。程序主界面是通讯录的目录显示手机上的的联系人的名称。点击联系人的姓名可以显示联系人的详细信息。在按了MEMU键之后会弹出菜单栏。单击菜单栏上的按钮可以添加联系人和删除联系人 3、实现主要代码解释 (1)确定数据库的数据结构。本程序只要一张表,该表的内容及说明如下表所示 字段名称数据类型说明字段名称数据类型声明 _id Integer所插入记录 的编号 name varchar联系人名称 phone Varchar联系人的固 定电话 mobile varchar手机号码 Email Varchar联系人的邮 箱的地址 post varchar联系人固话 addr varchar联系认的地 址comp varchar联系人所在 地 (2)在res/drawable-mdpi目录下拷入程序要用的图标(3)定义字符串资源string.xml

(4)开发布局文件mail.xml用于显示联系人列表。 (5)layout目录下新建一个detail.xml,在其中输入如下的代码

Android使用SQLite数据库的简单实例

Android使用SQLite数据库的简单实例 先画个图,了解下Android下数据库操作的简单流程: 1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelpe r. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper 复制代码代码如下:

package cn.learn.db.util; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; public class DBHelper extends SQLiteOpenHelper { private final static String DB_NAME ="test.db";//数据库名 private final static int VERSION = 1;//版本号 //自带的构造方法 public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } //为了每次构造时不用传入dbName和版本号,自己得新定义一个构造方法 public DBHelper(Context cxt){ this(cxt, DB_NAME, null, VERSION);//调用上面的构造方法 } //版本变更时 public DBHelper(Context cxt,int version) {

Android 开发中使用 SQLite 数据库

Android 开发中使用 SQLite 数据库 简介: SQLite 是一款非常流行的嵌入式数据库,它支持SQL 查询,并且只用很少的内存。Android 在运行时集成了SQLite,所以每个Android 应用程序都可以使用SQLite 数据库。对数熟悉SQL 的开发人员来时,使用SQLite 相当简单。可以,由于JDBC 不适合手机这种内存受限设备,所以Android 开发人员需要学习新的API 来使用SQLite。本文主要讲解SQLite 在Android 环境中的基本使用。 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。 图 1. SQLite 内部结构 SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQLite。

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。 此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。 除了上述功能外,SQLite 是一个完整的 SQL 系统,拥有完整的触发器,交易等等。 Android 集成了 SQLite 数据库 Android 在运行时(run-time)集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQLite 相当简单。但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。因此,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。 数据库存储在 data/< 项目文件夹 >/databases/ 下。 Android 开发中使用 SQLite 数据库 Activites 可以通过 Content Provider 或者 Service 访问一个数据库。下面会详细讲解如果创建数据库,添加数据和查询数据库。 创建数据库 Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法: 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的 游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整 数。

Android SQLite第三方数据库greendao 的使用

Android SQLite第三方数据库greendao的使用 一、导包 1、在Android Studio 中的build.gradle文件中的dependencies节点中添加以下代码,然后点击同步按钮 2、或者搜索de.greenrobot:greendao-generator:2.1.0和de.greenrobot:greendao:2.1.0 两个包自动导入 compile'de.greenrobot:greendao-generator:2.1.0' compile 'de.greenrobot:greendao:2.1.0' 二、配置环境 我是以User用户表为例子 在你当前工程地址创建ExampleDaoGenerator类,并添加以下代码,然后选中这个类右键选中run……main(),如下图所示

import de.greenrobot.daogenerator.DaoGenerator; import de.greenrobot.daogenerator.Entity; import de.greenrobot.daogenerator.Schema; public class ExampleDaoGenerator { //以下添加的属性会成为以表的字段,以及实体类的属性 private static void addTaskDetail(Schema schema) { //指定实体类,参数是实体类的类名 Entity entity = schema.addEntity("User"); //添加id属性 entity.addIdProperty(); //添加属性userId,指定非空 entity.addStringProperty("userId").notNull(); //添加属性username entity.addStringProperty("username"); //添加属性age entity.addIntProperty("age"); //添加属性phone entity.addStringProperty("phone"); } public static void main(String[] args) throws Exception { //生成数据库文件的目标包名//target package for dao files //第一个参数是数据库版本号,第二个参数是包的根目录的包Schema schema = new Schema(1, "cn.myregent.www.greendaotext.db "); addTaskDetail(schema); try { //'..'代表当前目录,接着是工程名/studio的包地址/

相关主题
文本预览
相关文档 最新文档