1.先创建一个接口,interface 里面封装好几个SQL的常用属性,其他类中只要调用该属性时候,只需要implements即可 代码如下
public interface SQLValues { String TABLE_NAME = "Person";//表名 String PERSON_NAME = "name";//person表的name列 String PERSON_NUMBER = "number"; //person表的number列
}
2.减一个数据库工具类 里面封装常用方法 例如增删改查,代码如下
public class DBTool implements SQLValues { //数据库的对象,用于操作 private SQLiteDatabase sqLiteDatabase; private Context context;//连接上下文 private MySQLHelper mySQLHelper;//创建helper对象 private final String TAG = "DBTool"; public DBTool(Context context) { this.context = context; mySQLHelper = new MySQLHelper(context, "ContactPersonRoom.db", null, 1); sqLiteDatabase = mySQLHelper.getWritableDatabase(); } //判断数据库里是否有该号码 的方法 private boolean isHasNumber(String number) { String sql = "select * from " + TABLE_NAME + " where " + PERSON_NUMBER + " = ? "; //返回符合条件的cursor对象 Cursor cursor = sqLiteDatabase.rawQuery(sql, new String[]{number});//number为要查询的变量 //如果数据数量 > 0 则返回true 证明存过该号码 Boolean flag = cursor.getCount() > 0; cursor.close();//关闭游标 return cursor.getCount() > 0; } //插入一条数据 的方法 public void insert(String number, String name) { if (isHasNumber(number)) {//如果数据库存在该号码 Log.d(TAG, "insert->不插入" + name); return; } else { ContentValues values = new ContentValues(); values.put(PERSON_NAME, name); values.put(PERSON_NUMBER, number); //插入数据 sqLiteDatabase.insert(TABLE_NAME, null, values); } }
}
3.建立一个helper类,继承Helper 建立数据库存放类
public class MySQLHelper extends SQLiteOpenHelper implements SQLValues { private Context context; private String creat = "create table " + TABLE_NAME + "(" + " id integer primary key autoincrement " + "," + PERSON_NAME + " text " + "," + PERSON_NUMBER + " text)"; public MySQLHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); this.context = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(creat); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }