在程序初始化时候,必须先建立数据库以对数据库进行更新,所以这里需要继承一个 SQLiteOpenHelper抽象类,这里有两个方法 onCreate(),onUpgreade()两个方法,前者用来创建数据库及对数据库的一些初始化操作,后者是当数据库版本进行更新时候用。
下面的例子是创建了一个数据库名为:MyDB,版本为1的数据库,并在数据库中创建了一个User表。这里利用了构造函数传入了 数据库名和版本名常量,参数为Context 对象。
public class DatebaseHelper extends SQLiteOpenHelper { public final static String NAME="MyDB"; public final static int VERSION=1; public DatebaseHelper(Context context) { super(context, NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE User (userID integer primary key autoincrement, userName varchar(20), pwd varchar(12))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS User"); onCreate(db); } } 用SQLiteDatabase来操作SQLite数据库。 public class DatebaseService { private DatebaseHelper dbHelper; public DatebaseService(Context context) { this.dbHelper = new DatebaseHelper(context); } //保存数据。 public void save(User user){ SQLiteDatabase db=dbHelper.getWritableDatabase(); db.execSQL("insert into user(userName,pwd) values(?,?)", new Object[]{user.getName(),user.getpwd()}); } //更新数据 public void update(User user){ SQLiteDatabase db=dbHelper.getReadableDatabase(); db.execSQL("update user set userName=?,pwd=? where userID=?", new Object[]{user.getuserName(),user.getpwd(),user.getuserID()}); } //查找数据 public User find(Integer userID){ SQLiteDatabase db=dbHelper.getReadableDatabase(); Cursor cursor=db.rawQuery("select * from User where userID=?",new String[]{userID.toString()} ); while(cursor.moveToNext()){ String name=cursor.getString(cursor.getColumnIndex("userName")); int pwd=cursor.getInt(cursor.getColumnIndex("pwd")); int id=cursor.getInt(cursor.getColumnIndex("userID")); return new User(id,name,pwd); } return null; } //删除数据 public void delete(Integer userID){ SQLiteDatabase db=dbHelper.getReadableDatabase(); db.execSQL("delete from User where userID=?",new Object[]{userID}); } public Long getCount(){ SQLiteDatabase db=dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select count(*) from User", null); cursor.moveToFirst(); return cursor.getLong(0); }当然SQLite的操作还不止这一点,这里只是一些简单的增删改查,还有很多更好的操作应用,将在以后介绍。