`
苹果超人
  • 浏览: 195599 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQLite

阅读更多
  Android系统中集成的是SQLite3版本,SQLite是一个开源的嵌入式数据库,他支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,不支持静态数据类型,而是使用列关系。
  创建访问数据库,必须继承SQLiteOpenHelper类,且必须实现onCreate和onUpgrade两个方法,当创建数据库时,就会调用onCreate,所以可将要添加的table写在里面。当更新数据库时,则会调用onUpgrade,所以可将要更新的table的sql写在里面。前者用于初次使用软件时生成数据库,后者用于升级软件时更新数据库表结构。通过getWritableDatabase()和getReadableDatabase()来获得数据库。
  代码:
package com.kevin.sqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class ToDoDB extends SQLiteOpenHelper {

	private final static String DATABASE_NAME = "todo_db";
	private final static int DATABASE_VERSION = 1;
	private final static String TABLE_NAME = "todo_table";
	public final static String FIELD_ID = "_id";
	public final static String FIELD_TEXT = "todo_text";
	public ToDoDB(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		System.out.println("onCreate");
		// 创建table
		String sql = "create table " + TABLE_NAME + " ( " + FIELD_ID +
		  			 " INTEGER primary key autoincrement, " + FIELD_TEXT + " text)";
		db.execSQL(sql);
		System.out.println("执行完成");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion) {
		System.out.println("onUpgrade");
		String sql = " drop table if exists " + TABLE_NAME;
		db.execSQL(sql);
		onCreate(db);
	}
	
	public Cursor select(){
		System.out.println("select");
		SQLiteDatabase db = this.getReadableDatabase();
		/*
		 * 参数说明:第一个参数表名
		 * 第二个参数要查询的列名,如果填null,则表示所有列
		 * 第三个参数查询条件
		 * 第四个参数查询条件的值
		 * 第五个groupby语句
		 * 第六个having语句
		 * 第七个orderby语句
		 */
		Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
		return cursor;
	}
	
	public long insert(String  text){
		System.out.println("insert");
		SQLiteDatabase db = this.getWritableDatabase();
		ContentValues cv = new ContentValues();
		cv.put(FIELD_TEXT, text);
		/*
		 * 第一个参数表名
		 * 第二个参数插入列不能为空的列名
		 * 第三个参数ContentVlaues对象
		 */
		long row = db.insert(TABLE_NAME, null, cv);
		return row;
	}
	
	public void delete(int id){
		System.out.println("");
		SQLiteDatabase db = this.getWritableDatabase();
		String where = FIELD_ID + " = ? ";
		String[] whereValue = {Integer.toString(id)};
		db.delete(TABLE_NAME, where, whereValue);
	}
	
	public void update(int id, String text){
		System.out.println("update");
		SQLiteDatabase db = getWritableDatabase();
		String where = FIELD_ID + " = ? ";
		String[] whereValue = {Integer.toString(id)};
		ContentValues cv = new ContentValues();
		cv.put(FIELD_TEXT, text);
		db.update(TABLE_NAME, cv, where, whereValue);
	}

}
分享到:
评论
1 楼 叶紫夜子 2013-10-20  

相关推荐

    SQLite数据库 sqlitedll库文件 sqlite驱动JAR包 sqlite工具

    在Java下连接SQLite数据库 一、下载SQLite数据库的JDBC:http://www.zentus.com/sqlitejdbc/ 二、将下载到的包解压后得到jar包放到%JAVA_HOME%\lib下,并且将其添加到ClassPath系统环境变量中。一定要保证在类路径...

    最新版: Sqlite ODBC Driver 0.99991 (SQLite 3.43.2) 安装版和dll版

    网上很难下载到,分享给需要的:sqlite3odbc.dll 属性 文件版本 1.34455.0,0 产品名称 ODBC Driver for SQLite3 3.43.2 产品版本 0.99991 版权 Copyriglt @2004-2023 ,de> 大小 942 KB 修改日期 2023-10-23 21:50 ...

    SQLite.Interop.dll 支持sqlite expert professional 4.2密码录入

    SQLite.Interop.dll for sqlite expert professional 4.2 用与SQLite Expert打开本地已加密的数据库的插件。适用32位和64位。 1.直接将下载的文件复制到SQLite Expert安装路径(如:c:\Program Files (x86)\SQLite ...

    SQLite、SQLitedb数据库查看器

    一款绿色的SQLite文件查看编辑器,支持SQL语句,直接解压后运行文件夹里面的SQLiteDatabaseBrowserPortable.exe即可运行,打开文件时文件类型选择所有类型,内附简单的使用方法,配合i4等苹果手机助手可以方便得将...

    sqlite3加密版本数据库

    基于sqlite3的加密版本的数据库动态链接库,附lib和.h头文件,新测试可用。可设置密码和修改密码,加密后的数据库文件是无法被打开的。官方提供的免费版本sqlite3都是没有加密的,官方收费的很贵哦,有需要的朋友...

    Android中SQLite数据库查看工具

    SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个...

    SQLite.Interop.dll for sqlite expert professional 4.2

    SQLite.Interop.dll for sqlite expert professional 4.2 用与SQLite Expert打开本地已加密的数据库的插件。1.将SQLite.Interop.dll x86拷贝到SQLite Expert安装路径(如:x:\Program Files (x86)\SQLite Expert\...

    sqlite远程管理工具

    qlite数据库远程管理器,只要在SQLITE数据文件所在目录下运行SQLITE3SERVER服务器程序就可以在于之联网的机器管理SQLITE数据库。可同时管理多台SQLITE数据库服务器。 实现的功能如下: 1、可列出远程SQLITE数据库...

    delphi+sqlite3带加密Demo

    1、获取sqlite3.dll,去网上下载wxsqlite3的最新版本代码,解压后其中有一个sqlite3目录,其中有编译好的版本,lib目录下的是原版本,secure目录下有aes128和aes256两个带加密的版本,直接拿其中任一个sqlite3.dll...

    DB.Browser.for.SQLite-3.11.0-win64 SQLite数据库查看工具

    DB Browser for SQLite(DB4S) 是一个高质量、可视化、开源的工具,用于创建、设计和编辑与SQLite兼容的数据库文件。 为想要创建、搜索和编辑数据库的用户和开发人员而设计的。DB Browser for SQLite(DB4S) 使用一个...

    VC工程演示对sqlite数据库的操作,包含SQLite3文件!

    SQLite官方下载只提供给我们一个sqlite3.dll跟一个sqlite3.def文件,并没有提供用于VC++6.0的lib文件,可以利用sqlite3.def文件生成(此文档已生成了,可以直接使用),步骤如下: 1.将sqlite3.h(D:\sqlite-...

    SQlite3库及头文件分享

    文件列表:1)sqlite3.h;2)sqlite3.lib;3)sqlite3.dll; 学习VS2010/MFC下数据库编程已经有一段时间了,大多是在网站上浏览一些资源,这些资源大多以VC6.0位开发环境,而在VS2010下往往出现问题,所幸看到了...

    sqlite-jdbc-3.15.1-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.15.1.jar; 赠送原API文档:sqlite-jdbc-3.15.1-javadoc.jar; 赠送源代码:sqlite-jdbc-3.15.1-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.15.1.pom; 包含翻译后的API文档:...

    Sqlite数据库里插入数据的条数上限是500

    今天在向Sqlite数据库里... 您可能感兴趣的文章:SQLite教程(八):命令行工具介绍SQLite教程(十二):锁和并发控制详解SQLite教程(十四):C语言编程实例代码(2)python查询sqlite数据表的方法SQLite之Autoincre

    SQLITE3 数据文件加密与解密程序 DELPHI版

    网上大多关于SQLITE3数据文件的加密与解密都是欲言由止,近期因要开发关于SQLITE3数据库类型的软件,做了一下研究。用D7写了这样一个工具。支持SQLITE3数据文件的批量加密与解密。工具自身不依赖SQLITE3.DLL动态库,...

    C#操作SQLite数据库之读写数据库的方法

    本文实例讲述了C#操作SQLite数据库之读写数据库的方法。分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> ...

    sqlite-jdbc-3.34.0-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.34.0.jar; 赠送原API文档:sqlite-jdbc-3.34.0-javadoc.jar; 赠送源代码:sqlite-jdbc-3.34.0-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.34.0.pom; 包含翻译后的API文档:...

    Delphi调用sqlite.7z

    Delphi7调用sqlite数据库实例,包含2个pas文件,一个dll文件,调用代码介绍,最全最实用最简单的Delphi7调用sqlite数据库资源. Delphi7调用SQLite数据库使用方法: 1. 在项目中添加SQLite3.pas、SQLiteTable3.pas这2...

    【实测有效,真正解决】VB.NET C# VS sqlite 无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块

    简单整合32位SQLite跟64位SQLite,项目属性设置为anycpu的时候不会再有烦人的编译平台不同的提示,sqlite会自动根据系统的位数,而选择相应的版本。 同时还阔以解决System.DllNotFoundException: 无法加载 DLL...

    基于Django3.0.5+Python3.7+SQLite的博客系统源码.zip

    基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于...

Global site tag (gtag.js) - Google Analytics