· 10 years ago · Aug 25, 2016, 02:28 AM
1package com.example.lab12_databaseapp;
2
3
4
5import android.content.ContentValues;
6import android.content.Context;
7import android.database.Cursor;
8import android.database.SQLException;
9import android.database.sqlite.SQLiteDatabase;
10import android.database.sqlite.SQLiteOpenHelper;
11import android.util.Log;
12
13public class DBAdapter {
14 static final String KEY_ROWID="_id";
15 static final String KEY_NAME = "name";
16 static final String KEY_EMAIL = "email";
17 static final String TAG = "DBAdapter";
18
19 static final String DATABASE_NAME = "MyDB";
20 static final String DATABASE_TABLE ="contacts";
21 static final int DATABASE_VERSION = 1;
22
23 static final String DATABASE_CREATE =
24 "create table contacts (_id integer primary key autoincrement, "+
25 "name text not null, email text not null);";
26
27 final Context context;
28
29 DatabaseHelper DBHelper;
30 SQLiteDatabase db;
31
32 public DBAdapter(Context ctx)
33 {
34 this.context = ctx;
35 DBHelper = new DatabaseHelper(context);
36 }
37 private static class DatabaseHelper extends SQLiteOpenHelper
38 {
39 DatabaseHelper(Context context)
40 {
41 super(context, DATABASE_NAME,null,DATABASE_VERSION);
42 }
43 @Override
44 public void onCreate(SQLiteDatabase db)
45 {
46 try
47 {
48 db.execSQL(DATABASE_CREATE);
49 } catch (SQLException e){
50 e.printStackTrace();
51 }
52 }
53
54 @Override
55 public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion)
56 {
57 Log.w(TAG,"Upgrading database from version " +oldVersion+ "to"
58 +newVersion + ", which will destroy all old data");
59 db.execSQL("DROP TABLE IF EXISTS contacts");
60 onCreate(db);
61 }
62 }
63 //--open the database---
64 public DBAdapter open() throws SQLException
65 {
66 db = DBHelper.getWritableDatabase();
67 return this;
68 }
69 //--closes the database ---
70 public void close()
71 {
72 DBHelper.close();
73 }
74 //-- insert a contact into the database---
75 public long insertContact(String name, String email)
76 {
77 ContentValues initialValues = new ContentValues();
78 initialValues.put(KEY_NAME, name);
79 initialValues.put(KEY_EMAIL, email);
80 return db.insert(DATABASE_TABLE, null, initialValues);
81 }
82 //--- deletes a particular contact ---
83 public boolean deleteContact(long rowId)
84 {
85 return db.delete(DATABASE_TABLE, KEY_ROWID+"=" +rowId, null)>0;
86 }
87 //--retrives all the contacts---
88 public Cursor getAllContacts()
89 {
90 return db.query(DATABASE_TABLE, new String[]{KEY_ROWID,KEY_NAME,
91 KEY_EMAIL}, null,null,null,null,null);
92 }
93 ///--retrieves a particular contact---
94 public Cursor getContact(long rowId) throws SQLException
95 {
96 Cursor mCursor =
97 db.query(true,DATABASE_TABLE, new String[] {KEY_ROWID,
98 KEY_NAME,KEY_EMAIL}, KEY_ROWID+"="+rowId,null,
99 null,null,null,null);
100 if (mCursor != null){
101 mCursor.moveToFirst();
102 }
103 return mCursor;
104 }
105 //--updates a contact---
106 public boolean updateContact(long rowId, String name, String email)
107 {
108 ContentValues args = new ContentValues();
109 args.put(KEY_NAME, name);
110 args.put(KEY_EMAIL, email);
111 return db.update(DATABASE_TABLE, args, KEY_ROWID+"="+rowId, null)>0;
112 }
113 public Cursor newContact(long rowId) throws SQLException
114 {
115 Cursor mCursor =
116 db.query(true,DATABASE_TABLE, new String[] {KEY_ROWID,
117 KEY_NAME,KEY_EMAIL}, KEY_ROWID+"="+rowId,null,
118 null,null,null,null);
119 if (mCursor != null){
120 mCursor.moveToFirst();
121 }
122 return mCursor;
123 }
124}