目前所介绍的方法只是用来存储一些简单的数据。如果想要存储关系型数据,那么使用数据库将会更加的 效率。举个例子,你要存储学校里面每一个学生的分数,这种情况下,最好使用数据库,因为你可以查询某 个学生的具体分数。而且,使用数据库能够保持不同数据之间关系的完整性。
Android使用SQLite数 据库系统。使用这种数据库,只有创建它的程序可以使用它,别的程序无法访问到它。
在接下来的几 节中,会简述如何通过编码在你的程序中创建一个SQLite数据库。对于Android来说,通过编码创建的数据库 的存储位置是/data/data/<packane_name>
/databases 。
想要处理数据库的一种良好 的方式就是创建一个数据库辅助类,这个类中,封装了所有的数据操作方式。因此,这节中我们来看看如何 创建一个数据库辅助类DBAdapter,这个类中包含创建,打开,关闭和使用SQLite数据库。
我们讲创 建一个数据库,名字叫MyDB;包含一张表,名字叫contacts,有3列_id,name和email。
开发入门(十九)数据库 19.1创建数据库辅助类-rman 创建辅助数据库">
1. 创建一个工程,Databases。
2. 创建一个类,DBAdater。
3. DBAdapter.java中的代码。
public class DBAdapter { static final String KEY_ROWID = "_id"; static final String KEY_NAME = "name"; static final String KEY_EMAIL = "email"; static final String TAG = "DBAdapter"; static final String DATABASE_NAME = "MyDB"; static final String DATABASE_TABLE = "contacts"; static final int DATABASE_VERSION = 2; static final String DATABASE_CREATE = "create table contacts (_id integer primary key autoincrement, " + "name text not null, email text not null);"; final Context context; DatabaseHelper DBHelper; 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) { try { db.execSQL(DATABASE_CREATE); } catch (SQLException e) { e.printStackTrace(); } } @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 contacts"); onCreate(db); } } //---opens the database--- public DBAdapter open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---closes the database--- public void close() { DBHelper.close(); } //---insert a contact into the database--- public long insertContact(String name, String email) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_NAME, name); initialValues.put(KEY_EMAIL, email); return db.insert(DATABASE_TABLE, null, initialValues); } //---deletes a particular contact--- public boolean deleteContact(long rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; } //---retrieves all the contacts--- public Cursor getAllContacts() { return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME, KEY_EMAIL}, null, null, null, null, null); } //---retrieves a particular contact--- public Cursor getContact(long rowId) throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME, KEY_EMAIL}, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } //---updates a contact--- public boolean updateContact(long rowId, String name, String email) { ContentValues args = new ContentValues(); args.put(KEY_NAME, name); args.put(KEY_EMAIL, email); return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; } }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, string
, final
, static
, null
, public
, getcontact
, #DbHelper
, 辅助类
, Email类
Dbhelper
rman 创建辅助数据库、数据库学习入门、oracle数据库入门教程、nosql数据库入门、数据库入门教程,以便于您获取更多的相关知识。