SQlite-数据库的访问实例(转)
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-数据库的访问实例(转)的更多相关文章
- 基于三层架构下的公共数据访问方法(Sqlite数据库)
作者总结了一下,使用Winform的三层架构做窗体应用程序,在数据访问方面,有用到纯sql语句方法.参数方法.存储过程方法. 那么什么是三层架构呢? UI---存放Form窗体---(用户所关心的) ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- C#/Sqlite-单机Window 程序 sqlite 数据库实现
数据库分析和选择 Excel 文件 做数据源 限制性比较强,且不适合查询,分析 等操作 Access 数据库 Access 管理数据界面和功能不强 mysql 和sql server 功能满足,但需要 ...
- 数据存储与访问之——初见SQLite数据库
本节引言: 本节学习Android数据库存储与访问的第三种方式:SQLite数据库,和其他的SQL数据库不同,我们并不需要在手机上另外安装一个数据库手机软件,Android系统已经集成了这 ...
- 【Android】13.1 用Android自带的API访问SQLite数据库
分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 这一节我们先来看看如何直接用Android自带的API创建和访问SQLite数据库. 1.创建SQLite数据库 ...
- android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?
通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...
- Qt5 开发 iOS 应用之访问 SQLite 数据库
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- python-整理--sqlite数据库访问
python 自带sqlite3数据库访问模块. sqlite3 以下写一个数据库访问类 ''' 2016年2月5日 描述: 操作sqlite数据库的封装 主要功能: 将sqlite数据库数据转为py ...
随机推荐
- Android中图片优化之webp使用
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 有关图片的优化,通常我们会用到LruCache(使用强引用.强 ...
- PCL ubuntu-12.04
1.apt-get install build-essential cmake cmake-qt-gui 2.sudo add-apt-repository ppa:v-launchpad-joche ...
- 仿小米简约Calculator
上个星期的时候,我想教我朋友做一个简单的app.想来想去教什么比較好.当时看见小米的计算器认为比較美丽,就想这个简单.然后就開始动手做了.我以为能够一个小时能够搞定.没想到花了快一天的时间. 哎.突然 ...
- BZOJ 1012 单调队列+二分
思路: 维护一个单减的序列 序号是单增的 每回二分查找第一个比询问的大的值 我手懒 用得lower_bound //By SiriusRen #include <cstdio> #incl ...
- springmvc使用jQuery.datatable时遇到的错误
springmvc使用jQuery.datatable时遇到的错误 1正确时返回 josn结果: {,,,,,,,,,,,,,,,,"} 页面显示处理中(processing),列表空白,其 ...
- vue中剖析中的一些方法
1 判断属性 71 -81 var hasOwnProperty = Object.prototype.hasOwnProperty; /** * Check whether the object h ...
- GPU流水线
起点: 是一个三维模型,由顶点(vertices)构成.顶点列表中的每个顶点是三维坐标系中的坐标,并带有颜色信息.顶点列表(point list)即是流水线的输入数据. 顶点处理: 定点通过三角化(t ...
- SSH框架的多表查询(方法二)
必须声明本文章==>http://www.cnblogs.com/zhu520/p/7773133.html 一:在前一个方法(http://www.cnblogs.com/zhu520/p ...
- POJ 2352 Stars(线段树)
题目地址:id=2352">POJ 2352 今天的周赛被虐了. . TAT..线段树太渣了..得好好补补了(尽管是从昨天才開始学的..不能算补...) 这题还是非常easy的..维护 ...
- win系统下的eclipse连接和使用linux上的hadoop集群
准备工作 先在win系统的hosts文件中加入下面内容 10.61.6.164master //hadoop集群的master节点 一.首先在eclipse上安装hadoop插件 下载hado ...