1、DBAdapter类:  1 package com.cnzcom.android.quickdial;

 import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; /**
*
* @author zhangjie
*
* 数据库相关操作的类
*/
public class DBAdapter {
/**
* 数据库名
*/
private static final String DATABASE_NAME = "quickdial.db"; /**
* 数据表名
*/
private static final String DATABASE_TABLE = "quickdial"; /**
* 数据库版本
*/
private static final int DATABASE_VERSION = 1; /**
* key_id :主键
*/
@SuppressWarnings("unused")
private static final String KEY_ID = "key_id"; /**
* position :位置信息,表示数据是第几项
*/
private static final String POSITION = "position"; /**
* name :姓名
*/
private static final String NAME = "name"; /**
* phone_number :电话号码
*/
private static final String PHONE_NUMBER = "phone_number"; /**
* ip :是否ip播出
*/
private static final String IP = "ip"; /**
*
*/
private static final String DATABASE_CREATE =
"create table quickdial (key_id INTEGER PRIMARY KEY, "
+ "position INTEGER, "
+ "name TEXT, "
+ "phone_number TEXT, "
+ "ip INTEGER"
+ ");"; /**
*
*/
private final Context context; /**
*
*/
private DatabaseHelper DBHelper; /**
*
*/
private SQLiteDatabase db; public DBAdapter(Context ctx) {
context = ctx;
DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
} @Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
} } /**
* 打开数据库
* @return
* @throws SQLException
*/
public SQLiteDatabase open() throws SQLException
{
db = DBHelper.getWritableDatabase(); Cursor cursor = getAll(); if(cursor.getCount() == 0) { Log.e("数据库为空", "插入数据");
/**
* 先使用假数据初始化数据库
*/
for(int i = 0; i < 10; i++) {
insert(i, "", "", 0);
}
} else {
Log.e("数据库不为空", "读取数据");
}
cursor.close(); return db;
} /**
* 关闭数据库
*/
public void close()
{
DBHelper.close();
} /**
* 向数据库中插入数据
*/ public long insert(int position, String name, String phone_number, int ip) { ContentValues initialValues = new ContentValues();
initialValues.put(POSITION, position);
initialValues.put(NAME, name);
initialValues.put(PHONE_NUMBER, phone_number);
initialValues.put(IP, ip); return db.insert(DATABASE_TABLE, null, initialValues);
} /**
* 删除数据,其实不是真正意义上的删除,而是将name = ""、phone_number = ""、ip = 0
*/
public boolean delete(int position) { ContentValues initialValues = new ContentValues();
initialValues.put(POSITION, position);
initialValues.put(NAME, "");
initialValues.put(PHONE_NUMBER, "");
initialValues.put(IP, 0); return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0; // return db.delete(DATABASE_TABLE, POSITION + "=" + position, null) > 0;
} /**
* 更改数据
*/
public boolean update(int position, String name, String phone_number, int ip) { ContentValues initialValues = new ContentValues();
//initialValues.put(POSITION, position);
initialValues.put(NAME, name);
initialValues.put(PHONE_NUMBER, phone_number);
initialValues.put(IP, ip); return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0;
} public Cursor getAll() { Cursor cur = db.query(DATABASE_TABLE,
null, null, null, null, null, null);
return cur; } public Cursor get(long rowId) throws SQLException {
Cursor cur = db.query(true, DATABASE_TABLE, new String[] {POSITION,
NAME,
PHONE_NUMBER,
IP}, POSITION + "=" + rowId, null, null, null, null, null); if(cur != null) {
cur.moveToFirst();
} return cur;
} } 2、Activity中调用:1 public DBAdapter m_DBAdapter; m_DBAdapter = new DBAdapter(this);
m_DBAdapter.open();

文章出处

http://www.cnblogs.com/Jackeyzhang/archive/2011/06/02/2068459.html

SQlite-数据库的访问实例(转)的更多相关文章

  1. 基于三层架构下的公共数据访问方法(Sqlite数据库)

    作者总结了一下,使用Winform的三层架构做窗体应用程序,在数据访问方面,有用到纯sql语句方法.参数方法.存储过程方法. 那么什么是三层架构呢? UI---存放Form窗体---(用户所关心的) ...

  2. 安卓 SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  3. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  4. C#/Sqlite-单机Window 程序 sqlite 数据库实现

    数据库分析和选择 Excel 文件 做数据源 限制性比较强,且不适合查询,分析 等操作 Access 数据库 Access 管理数据界面和功能不强 mysql 和sql server 功能满足,但需要 ...

  5. 数据存储与访问之——初见SQLite数据库

          本节引言: 本节学习Android数据库存储与访问的第三种方式:SQLite数据库,和其他的SQL数据库不同,我们并不需要在手机上另外安装一个数据库手机软件,Android系统已经集成了这 ...

  6. 【Android】13.1 用Android自带的API访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 这一节我们先来看看如何直接用Android自带的API创建和访问SQLite数据库. 1.创建SQLite数据库 ...

  7. android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

  8. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1   源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...

  9. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  10. python-整理--sqlite数据库访问

    python 自带sqlite3数据库访问模块. sqlite3 以下写一个数据库访问类 ''' 2016年2月5日 描述: 操作sqlite数据库的封装 主要功能: 将sqlite数据库数据转为py ...

随机推荐

  1. 使用maven安装jar到本地仓库

    mvn install:install-file "-DgroupId={安装的jar包的groupid,可以随意起名}" "-DartifactId={安装jar包的I ...

  2. Watcher详解 工作机制, Watcher客户端注册、Watcher 服务端注册

    Watcher详解.接口 在 ZooKeeper 中, 接口类 Watcher 用于表示一个标注你的事件处理器,其定义了事件通知相关的逻辑,包含 KeeperState 和 EventType 两个枚 ...

  3. Chrome开启无界面浏览模式Python+Windows环境

    环境:Python 3.5.x + Selenium 3.4.3 + Chromedriver 2.30 + Chrome 60 beta版 + WIN7/WIN10 chrome_options = ...

  4. 关于Android手机MTP模式连接的一些设置(win7和ubuntu下,以红米1s为例)

    有些手机的MTP模式在电脑上识别不了,须要一些设置才干够,以下就网上收集来的一些设置方法集中贴过来: 一. win7下 參考:http://blog.ammrli.com/?p=1117 1.在设备管 ...

  5. centos7;windows下安装和使用spice

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  6. xcode 4 svn配置(host is unreachable)

    xcode 4 svn配置 先保证你的xcode中已经安装了command line tools xcode -> preferences -> downloads -> comma ...

  7. NuGet配置代理

    https://stackoverflow.com/questions/9232160/nuget-behind-proxy nuget.exe config -set http_proxy=http ...

  8. Sqoop 数据导入导出实践

    Sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,等)中的数据导入到hadoop的HDFS中,也可以将HDFS的数据导入到 ...

  9. 使用 docker 安装多版本的 MySQL

    原文:使用 docker 安装多版本的 MySQL 首先从 docker 官网下载安装 docker. 检查 docker 安装是否成功,出现类似下面的信息就是安装好了 $ docker versio ...

  10. C++ lambda表达式 (一)

    为什么要lambda函数 匿名函数是许多编程语言都支持的概念,有函数体,没有函数名.1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值.正因为有这样的需求,c++引入了lambd ...