一、创建数据库
这里创建了note便签数据表,字段有noteId、noteTitle、noteTime、noteInfo
);
  // 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
 }
}
 
 
二、数据库操作查询所有
这里以MyNote便签对象为例,即在note数据表中查询出所有MyNote便签对象,mynotes为便签集合,note为数据库表
ArrayList<MyNote> mynotes = new ArrayList<MyNote>(); //便签MyNote对象集合
/**
* 从数据库中查询到所有的便签
*/
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();
    }
}
 
 
 
四、数据库操作修改
updateIndex = position; 修改之前,在进入修改界面之前,首先记住你要修改的对象的在集合的下标,以便修改后用新的对象替换

/**
* 便签修改
*/
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();
    }
}

 
五、数据库操作删除

这里要注意删除集合里面便签的方法
; i < notes.size(); i++)
        {
            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数据库相关操作的更多相关文章

  1. sqlite数据库相关总结

    1. sqlite是轻量型.关系型管理系统,是嵌入式的,占用资源低.可移植性强,比mySql处理速度快,现在主流的版本是sqlite3 2. sqlite中的数据类型有TEXT(字符串,采用UTF-8 ...

  2. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  3. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  4. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

  5. IOS开发-UI学习-sqlite数据库的操作

    IOS开发-UI学习-sqlite数据库的操作 sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql.PostgreSQL这 ...

  6. mysq数据库相关操作

    (一)常用SQL语句 1.SELECT USER() 得到登陆的用户 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到当前的时间 4.SELECT D ...

  7. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  8. 安卓平台SQLite数据库基础操作总结

    最近学了一些安卓开发,在这里分享一下SQLite数据库的使用相关部分,我使用的工具为Android Studio,后台语言为java: 首先,需要创建一个数据库辅助类DataBaseHelper,用于 ...

  9. Android Sqlite数据库相关——实现将 Sqlite 数据库复制到SD 卡

    确定 sqlite 数据库所在位置(一般在data/data/com.pagename/databases/ 下,其中 com.pagename为当前项目包名) 确定 sqlite 数据库名称,拼接到 ...

随机推荐

  1. 图像处理框架 Core Image 介绍

    这篇文章会为初学者介绍一下 Core Image,一个 OS X 和 iOS 的图像处理框架. 如果你想跟着本文中的代码学习,你可以在 GitHub 上下载示例工程.示例工程是一个 iOS 应用程序, ...

  2. 广播接收者 BroadcastReceiver

    1. 分为动态注册和静态注册, 静态注册在清单文件里配置即可.动态创建为代码手动添加. 在锁屏广播中, 使用静态创建消息接受不成功, 原因未知. 动态即可. 代码如下: 2. 创建类, 继承与Broa ...

  3. 爬虫5_python2_使用 Beautiful Soup 解析数据

    使用 Beautiful Soup 解析数据(感谢东哥) 有的小伙伴们对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Beautiful Soup,有了它我们可以很方便地提取出HT ...

  4. Open Cascade:拓扑类型(Topo_DS)之间类型转换

    TopoDS_Edge aEdge = TopoDS::Edge(myAISShape->Shape()); TopoDS_Wire S1_wire = static_cast(S1); // ...

  5. javaEE(7)_自定义标签&JSTL标签(JSP Standard Tag Library)

    一.自定义标签简介 1.自定义标签主要用于移除Jsp页面中的java代码,jsp禁止出现一行java脚本. 2.使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: •编写一个实现T ...

  6. ios调试小结

    Xcode底部的小黑盒是我们调试时的好朋友,它可以输出日志信息.错误信息以及其他有用的东西来帮你跟踪错误,除了可以看到日志直接输出的信息外,我们编程过程中也可以在某些断点停留,来检查app的多个方面. ...

  7. 几种优化web页面加载速度的策略

    剥离静态资源请求到CDN 一般在主域名下的HTTP请求里都会携带大量Cookie信息,最大4KB,每个域名下最多50条:但如果仅仅访问js/css/jpeg等静态资源文件的话是不需要Cookie信息, ...

  8. python爬取博客圆首页文章链接+标题

    新人一枚,初来乍到,请多关照 来到博客园,不知道写点啥,那就去瞄一瞄大家都在干什么好了. 使用python 爬取博客园首页文章链接和标题. 首先当然是环境了,爬虫在window10系统下,python ...

  9. Python9-模块2-序列化-day20

    序列化 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 序列就是字符串 序列化的目的1.以某种存储形式使自定义对象持久化:2.将对象从一个地方传递到另一个地方.3.使程序 ...

  10. c++-string-1

    解答注意: 我写的时候考虑了: 1) "     my"(设置flag,为true时表示上一个是非空格字符) 2) "hello John"(最后不是空格结尾, ...