SQLite数据库相关操作
// TODO Auto-generated constructor stub
}
/**
* 第一没有数据库创建的时候执行,以后均不执行 创建数据库、数据表和初始化数据库使用
*/
@Override
public void onCreate ( SQLiteDatabase db)
{
/**
* 创建数据表note
*/
StringBuffer stringBufferSQL = new StringBuffer();
stringBufferSQL.append(" Create TABLE note( ");
stringBufferSQL.append(" [noteId] integer PRIMARY KEY AUTOINCREMENT ");
stringBufferSQL.append(" ,[noteTitle] nvarchar(500) ");
stringBufferSQL.append(" ,[noteTime] datetime ");
stringBufferSQL.append(" ,[noteInfo] ntext ");
stringBufferSQL.append(" ) ");
/**
* 执行SQL语句
*/
db.execSQL(stringBufferSQL.toString());
}
/**
* 当数据库版本变更的时候执行 数据库变更的时候使用
*/
@Override
public void onUpgrade ( SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
}
}
/**
* 从数据库中查询到所有的便签
*/
private ArrayList<MyNote> selectByAllNote ()
{
Log.i("lhy", "NoteWorkMainAct:onCreate从数据库中查询所有的便签到主界面显示---");
SQLiteDatabase sqLiteDatabase = createNoteDB.getReadableDatabase();
// 开启事务
sqLiteDatabase.beginTransaction();
notes.clear();
try
{
// 查询所有便签itme数据
Cursor cursor = sqLiteDatabase.query(false, "note", new String[]
{ "noteId", "noteTitle", "noteTime", "noteInfo" }, null, null, null, null, "noteId desc", null);
while (cursor.moveToNext())
{
// 查询到数据后
// 获取便签数据给便签对象
MyNote mynote = new MyNote();
mynote.noteId = cursor.getInt(cursor.getColumnIndex("noteId"));
mynote.noteTitle = cursor.getString(cursor.getColumnIndex("noteTitle"));
mynote.noteTime = new SimpleDateFormat("yyyy-MM-dd hh:mm").parse(cursor.getString(cursor.getColumnIndex("noteTime")));
mynote.noteInfo = cursor.getString(cursor.getColumnIndex("noteInfo"));
// 添加到便签集合
notes.add(mynote);
}
// 提交事务
sqLiteDatabase.setTransactionSuccessful();
// 关闭游标
cursor.close();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
// 关闭事务
sqLiteDatabase.endTransaction();
sqLiteDatabase.close();
}
return mynotes;
}
Log.i(, mynote);
Log.i("lhy", "NoteWorkMainAct:noteAdd添加新便签到列表集合成功!!");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
sqLiteDatabase.endTransaction();
sqLiteDatabase.close();
}
}
/**
* 便签修改
*/
public void noteEdit ( MyNote mynote)
{
SQLiteDatabase sqLiteDatabase = createNoteDB.getReadableDatabase();
sqLiteDatabase.beginTransaction();
try
{
Log.i("lhy", "NoteWorkMainAct:noteEdit进入修改方法,操作数据库");
ContentValues values = new ContentValues();
// 放弃掉了noteTitle,所以这里永远为空
values.put("noteTitle", "");
values.put("noteInfo", mynote.noteInfo);
sqLiteDatabase.update("note", values, "noteId=", new String[]
{ mynote.noteId + "" });
// 提交事务
sqLiteDatabase.setTransactionSuccessful();
Log.i("lhy", "NoteWorkMainAct:noteEdit修改便签到数据库成功!!");
// 替换集合
Log.i("lhy", "NoteWorkMainAct:noteEdit【替换记录好的待修改便签对象在列表集合下标updateIndex的便签对象】");
Log.i("lhy", "NoteWorkMainAct:noteEdit修改便签到列表集合成功!!");
notes.set(updateIndex, mynote);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
sqLiteDatabase.endTransaction();
sqLiteDatabase.close();
}
}
{
if (notes.get(i).isCheck)
{
// 利用对象ID删除数据库数据
sqLiteDatabase.delete("note", "noteId=", new String[]
{ String.valueOf(notes.get(i).noteId) });
}
}
// 提交事务
sqLiteDatabase.setTransactionSuccessful();
Log.i("lhy", "NoteWorkMainAct:noteDel数据库数据删除成功!!");
Log.i("lhy", "NoteWorkMainAct:noteDel,Iterator迭代出在列表集合中选中了的便签对象,直接删除该对象");
// 删除集合
Iterator<MyNote> iterator = notes.iterator();
while (iterator.hasNext())
{
if (iterator.next().isCheck)
{
iterator.remove();
}
}
Log.i("lhy", "NoteWorkMainAct:noteDel集合数据删除成功!!");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
sqLiteDatabase.endTransaction();
sqLiteDatabase.close();
}
}
SQLite数据库相关操作的更多相关文章
- sqlite数据库相关总结
1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8 ...
- 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...
- android中与SQLite数据库相关的类
为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...
- 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET
今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...
- IOS开发-UI学习-sqlite数据库的操作
IOS开发-UI学习-sqlite数据库的操作 sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql.PostgreSQL这 ...
- mysq数据库相关操作
(一)常用SQL语句 1.SELECT USER() 得到登陆的用户 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到当前的时间 4.SELECT D ...
- 使用iOS原生sqlite3框架对sqlite数据库进行操作
摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...
- 安卓平台SQLite数据库基础操作总结
最近学了一些安卓开发,在这里分享一下SQLite数据库的使用相关部分,我使用的工具为Android Studio,后台语言为java: 首先,需要创建一个数据库辅助类DataBaseHelper,用于 ...
- Android Sqlite数据库相关——实现将 Sqlite 数据库复制到SD 卡
确定 sqlite 数据库所在位置(一般在data/data/com.pagename/databases/ 下,其中 com.pagename为当前项目包名) 确定 sqlite 数据库名称,拼接到 ...
随机推荐
- 闭包和OC的block的本质
“闭包” 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域). http://blog.csdn ...
- Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com
Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com
- spring-security中的csrf防御机制(跨域请求伪造)
什么是csrf? csrf又称跨域请求伪造,攻击方通过伪造用户请求访问受信任站点.CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社 ...
- eclips配置
新建空workspace import... configMathod:main:project:eFT-Debug@eFTSlnC/C++ Aplication /media/B/testspa2. ...
- MYSQL数据库SQL语句集锦
*特别说明:FILED代表数据表字段,CONDITIONS代表where之后的条件,TABLENAME代表数据表名 []中括号内的内容代表 可有可无. 创建数据库 create database ...
- (57)zabbix Slide shows幻灯片展示
定义好screen之后,我们想了解服务器状况之时,一般会一个个screen点过去,zabbix提供了幻灯片展示方法,可以定义多个Slide,一个slide中可以包含多个screen. 创建slide ...
- kvm虚拟化存储管理
1. kvm虚拟化存储介绍 KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的.Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型: Vol ...
- centos7.2快速搭建LAMP平台
#查看linux系统版本信息 cat /etc/redhat-release 以上是操作系统的所有信息,补充下内核信息参数介绍: 3.10.0-514.26.2.el7.x86_64 3表示主版本号, ...
- ASP.NET使用Memcached高缓存实例的初级介绍
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached ...
- Python包,json&pickle,time&datetime,random模块
补充内容: 解决模块循环导入的两种方法:(不得已而为之,表示程序结构不够严谨) 将导入模块语句放在文件最下方 保证语句导入之前函数内代码能够被执行 将导入语句放进函数体内 使其不影响整个函数的运行 包 ...