数据储存之SQLite(单例模式).docx_第1页
数据储存之SQLite(单例模式).docx_第2页
数据储存之SQLite(单例模式).docx_第3页
数据储存之SQLite(单例模式).docx_第4页
数据储存之SQLite(单例模式).docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据储存之SQLite(单例模式)1.SQLite数据库简介 在某些情况下,文件不是有效的 如果多线程数据访问是相关的 如果应用程序处理可能变化的复杂数据结构 等等 因此,Android带来了内置SQLite数据库支持 数据库对于创建它们的包套件是私有的 数据库不应该用来存贮文件 提示:在SDK中的samples/NotePad下可以找到关于如何使用数据库的例子 SQLite是一个轻量级的软件库 实现了一个完全适应严峻环境的数据库 原子量性 坚固性 独立性 耐久性 体积大小只用几千字节 一些SQL的指令只是部分支持,例如:ALTER、TABLE 参阅 获取更多信息2.单例模式简介单例模式(singleton)顾名思义,就是只有一个实例。作为对象的创建模式GOF95, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式在Java中的使用,Java中单例模式实例:Java中的单例模式在java中,可以使用以下这种方式使用单例模式创建类的实例:public class MyBean private static MyBean instance = null;/构造方法权限为 private private MyBean() /do something /在程序中可以直接使用MyBean.getInstance()获得MyBean的实例 public static synchronized MyBean getInstance() if(instance = null) instance = new MyBean(); return instance; 3.SQLite继承SQLiteOpenHelper类单例模式的实现:public class DBHelper extends SQLiteOpenHelper private final static String DB_NAME=my_info; private final static int VERSION =1; private static DBHelper instance=null; public static DBHelper getInstance(Context context) if(instance=null) instance=new DBHelper(context); return instance; private DBHelper(Context context) super(context, DB_NAME, null, VERSION); .4.建表语句在onCreate()方法中的实现:Override public void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub/建表语句直接使用db.execSQL(String sql)方法执行SQL建表语句 String createTable=create table user(id integer primary key,name text,age integer); db.execSQL(createTable); 5.SQLite增删改查的实现public static void insertInfo(Context context,Info info) SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase(); ContentValues values = new ContentValues(); values.put(name, info.getName(); values.put(age, info.getAge(); db.insert(user, null, values); db.close(); /删除信息 public static void deleteInfo(Context context,int id) SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase(); db.delete(user, id= + id, null); db.close(); /更新信息 public static void updateInfo(Context context,int id,Info info) SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase(); ContentValues values = new ContentValues(); values.put(name, info.getName(); values.put(age, info.getAge(); db.update(user, values, id=+id, null); db.close(); / 查找所有用户信息 public List queryAllInfo(Context context) SQLiteDatabase db=DBHelper.getInstance(context).getWritableDatabase(); List list = new ArrayList(); Cursor cursor = db.query(user, null, null, null, null, null, null); if (cursor.moveToFirst() do int age = cursor.getInt(cursor.getColumnIndex(age); String name = cursor.getString(cursor.getColumnIndex(name); Info info=new Info(); info.setName(name); info.setAge(age); list.add(info); while (cursor.moveToNext(); db.close(); return list; 6.插入一条测试数据点击按钮:按钮的事件处理如下:private OnClickListener listener=new OnClickListener() Override public void onClick(View v) / TODO Auto-generated method stub Info info=new Info(Jun,21); DBHelper.getInstance(ShowActivity.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论