- 浏览: 1220345 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
依照习惯还是通过一个例子来熟悉,我只所以都把例子写在这里方便我以后查找使用,也可以共享给大家学习,如果大家有什么好的网址和Demo也可以告诉我,谢谢!共同进步!!!
DatabaseActivity.java启动类:
2. DatabaseHelper.java这个类管理数据库的创建和版本管理
3. DBAdapter.java是对数据库的增,删,改,查的操作都在这个类里面
4.Constants.java文件主要是一些常量的保存:
5.最后是main.xml文件:
DatabaseActivity.java启动类:
package com.example.Database; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class DatabaseActivity extends Activity implements Button.OnClickListener { DBAdapter db_ex; long id; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 通过此类来进行数据库的相关操作 db_ex = new DBAdapter(this, Constants.DB_NAME, Constants.DB_VERSION); Button add_btn = (Button) findViewById(R.id.Button01); Button cancel_btn = (Button) findViewById(R.id.Button02); Button update_btn = (Button) findViewById(R.id.Button03); Button check_btn = (Button) findViewById(R.id.Button04); add_btn.setOnClickListener(this); cancel_btn.setOnClickListener(this); update_btn.setOnClickListener(this); check_btn.setOnClickListener(this); } public void onClick(View v) { switch (v.getId()) { case R.id.Button01: // ---add 2 titles--- // 每次操作数据库都要调用此函数open() db_ex.open(); id = db_ex.insertTitle("1111111", "Android book", "Jim"); id = db_ex.insertTitle("2222222", "Iphone book", "Edison"); // ---获取所有标题--- Cursor c = db_ex.getAllTitles(); if (c.moveToFirst()) { do { DisplayTitle(c); } while (c.moveToNext()); } db_ex.close(); break; case R.id.Button02: // 删除一行数据 db_ex.open(); if (db_ex.deleteTitle(1)) { Toast.makeText(this, "Delete successful.", Toast.LENGTH_LONG) .show(); } else { Toast.makeText(this, "Delete failed.", Toast.LENGTH_LONG) .show(); } db_ex.close(); break; case R.id.Button03: // 更新一条数据 db_ex.open(); if (db_ex.updateTitle(1, "1234567", "Programmer's Reference", "Wrox Press")) { Toast.makeText(this, "Update successful.", Toast.LENGTH_LONG) .show(); } else { Toast.makeText(this, "Update failed.", Toast.LENGTH_LONG) .show(); } // 将更新后的数据显示出来 Cursor c1 = db_ex.getTitle(1); if (c1.moveToFirst()) { DisplayTitle(c1); } else { Toast.makeText(this, "No title found", Toast.LENGTH_LONG) .show(); } db_ex.close(); break; case R.id.Button04: // 检索一条特定的数据 db_ex.open(); Cursor c2 = db_ex.getTitle(2); if (c2.moveToFirst()) { DisplayTitle(c2); } else { Toast.makeText(this, "No title found", Toast.LENGTH_LONG) .show(); } db_ex.close(); break; default: break; } } // 显示数据库中的所有数据 public void DisplayTitle(Cursor c) { Toast.makeText( this, "id: " + c.getString(0) + "\n" + "ISBN: " + c.getString(1) + "\n" + "TITLE: " + c.getString(2) + "\n" + "PUBLISHER: " + c.getString(3), Toast.LENGTH_LONG) .show(); } }
2. DatabaseHelper.java这个类管理数据库的创建和版本管理
package com.example.Database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.util.Log; //A helper class to manage database creation and version management public class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG = "DBAdapter"; public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override // 只有在第一次创建数据库的时候调用 // Called when the database is created for the first time public void onCreate(SQLiteDatabase db) { // Execute a single SQL statement that is not a query db.execSQL(Constants.DATABASE_CREATE); Log.i("", "execSQL"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS titles"); onCreate(db); } }
3. DBAdapter.java是对数据库的增,删,改,查的操作都在这个类里面
package com.example.Database; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class DBAdapter { DatabaseHelper DBHelper; SQLiteDatabase db; public DBAdapter(Context ctx, String base_name, int version) { DBHelper = new DatabaseHelper(ctx, base_name, null, version); } // 创建或打开一个读写数据库,每次写数据库都要调用此方法 // 不在使用时,需调用close() public DBAdapter open() throws SQLException { // ---打开数据库--- db = DBHelper.getWritableDatabase(); Log.i("", "getWritableDatabase"); return this; } public void close() { // ---关闭数据库--- DBHelper.close(); } // ---向数据库中插入一个标题--- public long insertTitle(String isbn, String title, String publisher) { ContentValues initialValues = new ContentValues(); initialValues.put(Constants.KEY_ISBN, isbn); initialValues.put(Constants.KEY_TITLE, title); initialValues.put(Constants.KEY_PUBLISHER, publisher); return db.insert(Constants.TABLE_NAME, Constants.KEY_ROWID, initialValues); } // ---删除一个指定标题--- public boolean deleteTitle(long rowId) { return db.delete(Constants.TABLE_NAME, Constants.KEY_ROWID + "=" + rowId, null) > 0; } // ---检索所有标题--- public Cursor getAllTitles() { return db.query(Constants.TABLE_NAME, new String[] { Constants.KEY_ROWID, Constants.KEY_ISBN, Constants.KEY_TITLE, Constants.KEY_PUBLISHER }, null, null, null, null, null); } // ---检索一个指定标题--- public Cursor getTitle(long rowId) throws SQLException { Cursor mCursor = db.query(true, Constants.TABLE_NAME, new String[] { Constants.KEY_ROWID, Constants.KEY_ISBN, Constants.KEY_TITLE, Constants.KEY_PUBLISHER }, Constants.KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } // ---更新一个标题--- public boolean updateTitle(long rowId, String isbn, String title, String publisher) { ContentValues args = new ContentValues(); args.put(Constants.KEY_ISBN, isbn); args.put(Constants.KEY_TITLE, title); args.put(Constants.KEY_PUBLISHER, publisher); return db.update(Constants.TABLE_NAME, args, Constants.KEY_ROWID + "=" + rowId, null) > 0; } }
4.Constants.java文件主要是一些常量的保存:
package com.example.Database; public class Constants { public final static String DB_NAME = "dne_db"; public final static int DB_VERSION = 1; public static final String TABLE_NAME = "titles"; public static final String KEY_ROWID = "_id"; public static final String KEY_ISBN = "isbn"; public static final String KEY_TITLE = "title"; public static final String KEY_PUBLISHER = "publisher"; public static final String DATABASE_CREATE = "create table IF NOT EXISTS " + TABLE_NAME + " (_id integer primary key autoincrement, " + "isbn text, title text not null, " + "publisher text not null);"; }
5.最后是main.xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="add one row" android:id="@+id/Button01" android:layout_width="150dp" android:layout_height="wrap_content"></Button> <Button android:text="delete one row" android:id="@+id/Button02" android:layout_width="150dp" android:layout_height="wrap_content"></Button> <Button android:text="update one row" android:id="@+id/Button03" android:layout_width="150dp" android:layout_height="wrap_content"></Button> <Button android:text="select one row" android:id="@+id/Button04" android:layout_width="150dp" android:layout_height="wrap_content"></Button> </LinearLayout>
发表评论
-
代码中如何获取WebView中存储的一些缓存信息
2011-10-21 10:45 2524下面这段代码可以提供一种方法,当然前提是要知道缓存文件的一些信 ... -
sqlite 数据库保存图片
2011-04-07 20:13 47211、bitmap保存到SQLite 中 数据格式:Blob ... -
sqlite 数据库总结
2011-04-07 19:26 12671.使用数据库之前,我们首先要写一个继承SQLiteOpenH ... -
Android应用数据存储几种方式(2)
2011-01-04 21:22 21143)SQLite 存储方式 SQ ... -
Android应用数据存储几种方式(1)
2011-01-04 21:07 2650在android中所有的 ... -
ContentProvider抓取通讯录数据
2010-10-28 14:48 1985旧版本的写法: import android.provid ... -
SD卡保存数据
2010-09-19 13:59 1551要往SDCard存放文件,程序必须先判断手机是否装有SDCar ... -
使用文件进行数据存储和读取
2010-09-19 13:38 1765使用文件如何对数据进行存储,见下面代码片段:Activ ... -
cmd窗口操作和浏览sqlite数据库
2010-08-04 10:35 3081步骤如下: 1.利用adb工具进入 shell:adb she ... -
SharedPreferences应用例子
2010-07-21 10:36 1811程序中一些简单数据保存的时候会用到; package co ...
相关推荐
它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 ...
SQLiteOpenHelper和SQLiteDatabase是Android Studio中使用SQLite数据库的核心组件,ContentValue和Cursor是辅助工具。通过使用这些组件和工具,可以轻松地在Android Studio中实现数据库的创建、读写和管理。
在Android应用开发中,SQLite是一个...通过以上介绍,我们了解了在Android中使用SQLCipher实现SQLite数据库加密的重要性、方法以及注意事项。在实际项目中,可以根据需求选择适合的加密策略,确保应用的数据安全性。
Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...
资源名称:android中sqlite数据库的创建以及增删改查 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
- **加密**: 可以使用第三方库对SQLite数据库进行加密,增强数据安全性。 - **索引**: 为经常用于查询的字段创建索引,提高查询速度。 - **批量操作**: 避免频繁的单条数据操作,尽量使用批处理来提升性能。 - **...
本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)、改(Update)和查(Read)操作。 1. **创建SQLite数据库** 在Android中,我们需要创建一个继承自`SQLiteOpenHelper`的类,这个类...
在Android开发中,SQLite数据库是默认的轻量级数据库,用于存储应用的数据。SQLite支持标准的关系型数据库特性,如SQL语法、事务处理等,且它体积小、无服务器、文件化,非常适合移动设备使用。本篇文章将深入探讨...
接下来,我们将深入探讨如何在Android中使用SQLite数据库。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了创建、升级和打开数据库的方法。例如,...
本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...
本实例将深入探讨如何在Android中使用SQLite数据库进行基本的操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 首先,我们来了解SQLite在Android中的使用基础。Android系统会为每个应用程序...
这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...
Android 绿豆通讯录( SQLite数据库 + ListView数据展示控件 ) https://blog.csdn.net/weixin_44949135/article/details/106029404 采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条...
总之,Android应用中SQLite数据库的管理涉及多个方面,包括创建和更新数据库、使用Web服务进行远程管理以及关注安全性和性能。开发者需要熟练掌握SQLite的基础知识,同时了解如何利用各种工具和策略来适应不同的需求...
这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. **SQLiteOpenHelper**: Android提供了`SQLiteOpenHelper`类来帮助我们管理SQLite数据库,...
在Android开发中,SQLite数据库是应用内部数据存储的主要方式之一,尤其适合小规模的数据存储。以下是关于Android使用SQLite数据库的一些核心知识点: 1. **SQLiteOpenHelper**:这是Android SDK提供了一个用于创建...
- 使用 `SQLiteOpenHelper` 类,我们可以在 Android 应用程序中创建和管理 SQLite 数据库。我们需要继承这个类并重写 `onCreate()` 和 `onUpgrade()` 方法。`onCreate()` 在数据库首次创建时调用,用于创建表结构;...
本篇文章将详细探讨如何在Android中使用SQLite数据库,通过具体的使用范例进行讲解。 一、SQLite数据库的创建与初始化 在Android中,SQLite数据库通常是通过`SQLiteOpenHelper`类来创建和管理的。首先,我们需要...
在安卓开发中,SQLite是一个非常重要的...总之,这个压缩包“安卓Android sqlite万能数据库”可能包含了实现上述功能的各种示例和工具,开发者可以通过学习和研究,掌握在安卓应用中使用SQLite数据库的技巧和最佳实践。