数据库的创建

来源:互联网 发布:苏联元帅知乎 编辑:程序博客网 时间:2024/06/06 18:13

创建数据库可以用谷歌包装好的sqliteopenhelper,在目录下创建myopenhelper类继承sqliteopenhelper,添加构造方法,改写super(),暂时先这样写,重写oncreate() upgrade()方法,oncreate()适合表的创建 ,upgrade()适合表的更新.创建和更新用SQL语句.

package com.example.phone.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class BlackNumberOpenHelper extends SQLiteOpenHelper {public BlackNumberOpenHelper(Context context) {super(context, "blacknumber.db", null, 1);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb.execSQL("create table blacknumber (_id integer primary key autoincrement, phone vachar(20), mode vachar(5));");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}

加入增删改查按钮,按钮事件中用myopenhelper调用出数据库,增删改查可以用SQL语句实现,也可用包装好的方法.(当有多个表的时候不适合).一些方法可以用contentvalue类,其下的put()方法底层是map,用于添加,改正等.

使用另一个类去管理数据库,增加增删改查等方法。使用单例模式。

package com.example.phone.db.dao;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.phone.db.BlackNumberOpenHelper;import com.example.phone.db.domain.BlackNumberInfo;public class BlackNumberDao {//单例模式//1 私有化构造private BlackNumberDao(Context context) {blackNumberOpenHelper = new BlackNumberOpenHelper(context);}//2 声明一个空对象private static BlackNumberDao blackNumberDao = null;private BlackNumberOpenHelper blackNumberOpenHelper;//3 实例化public static BlackNumberDao getInstance (Context context) {if(blackNumberDao == null) {blackNumberDao = new BlackNumberDao(context);}return blackNumberDao;}//增public void insert(String phone, String mode) {SQLiteDatabase db = blackNumberOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("phone", phone);values.put("mode", mode);db.insert("blacknumber", null, values );db.close();}//删public void delete(String phone) {SQLiteDatabase db = blackNumberOpenHelper.getWritableDatabase();db.delete("blacknumber", "phone = ?", new String[]{phone});db.close();}//改public void update(String phone, String mode) {SQLiteDatabase db = blackNumberOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("mode", mode);db.update("blacknumber", values , "phone = ?", new String[]{phone});db.close();}//查public List<BlackNumberInfo> findAll() {SQLiteDatabase db = blackNumberOpenHelper.getWritableDatabase();/*(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) * table 表名 * columns 要返回的列 * selection 选择条件,可用占位符 * selectionArgs 占位符 * groupBy  * having  * orderBy 排序方式 * */Cursor cursor = db.query("blacknumber", new String[]{"phone", "mode"}, null, null, null, null, "_id desc");List<BlackNumberInfo> list = new ArrayList<BlackNumberInfo>();while(cursor.moveToNext()) {BlackNumberInfo blackNumberInfo = new BlackNumberInfo();blackNumberInfo.setPhone(cursor.getString(0));blackNumberInfo.setMode(cursor.getString(1));list.add(blackNumberInfo);}cursor.close();db.close();return list;}}



原创粉丝点击