
简单的读取数据库 SQLiteOpenHelper
发布日期:2021-05-08 01:22:33
浏览次数:21
分类:精选文章
本文共 4235 字,大约阅读时间需要 14 分钟。
DBAdapter.java
package com.android.db;
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; public class DBAdapter { 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"; private static final String TAG = "DBAdapter"; private static final String DATABASE_NAME = "books"; private static final String DATABASE_TABLE = "titles"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE = "create table titles (_id integer primary key autoincrement, " + "isbn text not null, title text not null, " + "publisher text not null);"; private final Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db; public DBAdapter(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @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); } } //---打开数据库--- public DBAdapter open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---关闭数据库--- public void close() { DBHelper.close(); } //---向数据库中插入一个标题--- public long insertTitle(String isbn, String title, String publisher) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_ISBN, isbn); initialValues.put(KEY_TITLE, title); initialValues.put(KEY_PUBLISHER, publisher); return db.insert(DATABASE_TABLE, null, initialValues); } //---删除一个指定标题--- public boolean deleteTitle(long rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; } //---检索所有标题--- public Cursor getAllTitles() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null, null, null, null, null); } //---检索一个指定标题--- public Cursor getTitle(long rowId) throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER }, 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(KEY_ISBN, isbn); args.put(KEY_TITLE, title); args.put(KEY_PUBLISHER, publisher); return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; } }
firstDB.java
package com.android.db;
import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast; public class firstDB extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DBAdapter db = new DBAdapter(this); db.open(); long id; id = db.insertTitle( "0470285818", "C# 2008 Programmer's Reference", "Wrox"); id = db.insertTitle( "047017661X", "Professional Windows Vista Gadgets Programming", "Wrox"); db.close(); String ss=""; db.open(); Cursor c = db.getAllTitles(); if (c.moveToFirst()) { do { // ss=ss+ DisplayTitle(c); } while (c.moveToNext()); } db.close(); TextView tv=(TextView)findViewById(R.id.tv); tv.setText(ss); } public String 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(); */ return "id: " + c.getString(0) + "/n" + "ISBN: " + c.getString(1) + "/n" + "TITLE: " + c.getString(2) + "/n" + "PUBLISHER: " + c.getString(3); } }
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月20日 13时10分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Cocos平台集成AGC性能管理(二)—— 性能管理SDK集成
2021-05-09
华为推送服务 | 简单一招,提高用户活跃和留存
2021-05-09
基于Cocos SDKHub接入华为HMS Game服务—打包上架流程
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
2021-05-09
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
2021-05-09
使用Power BI构建数据仓库与BI方案
2021-05-09
pytest封神之路第二步 132个命令行参数用法
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
快用Django REST framework写写API吧
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09
学习版pytest内核测试平台开发万字长文入门篇
2021-05-09
Spring Cloud Stream如何消费自己生产的消息?
2021-05-09
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
[UWP]依赖属性1:概述
2021-05-09