1、前言
在我們Android開發中我們少不了對Android的資料庫進行操作,今天做了一個完整的增删改查Demo,還裝載了SoundPool作為提示音以及簡單的自定義View。
話不多說我們直接看代碼
這裡我直接使用了簡單4個按鈕然後去執行不同的操作,首先我們先建立一個資料庫.建立一個類來繼承SQLiteOpenHelper在裡面建表,**繼承的SQLiteOpenHelper中分别有onCreate()和onUpgrade()方法,onUpgrade()是用來更新資料庫的.我們這裡隻需要使用onCreate()第一次建立一個資料庫就行.**代碼如下.
public class DBTool extends SQLiteOpenHelper{
public DBTool(Context context) {
super(context, "student", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table student(" +
"[id] integer not null PRIMARY KEY," +
"[number] NVARCHAR(20) not null DEFAULT '',"+
"[name] NVARCHAR(20) not null DEFAULT '',"+
"[age] NVARCHAR(20) not null DEFAULT ''"+
")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
建立完成之後我們就先來新增一條資料,建立一個StudentData工具類用來對資料庫進行操作,我們使用時隻需要傳參就行.
public class StudentData {
public static synchronized boolean insert(Student student){
String sql="insert into student(number,name,age) values(?,?,?)";
try {
MainActivity.sqLiteDatabase.execSQL(sql,new Object[]{student.getNumber(),student.getName(),student.getAge()});
return true;
}catch (Exception e){
return false;
}
}
}
上面我們是使用的在MainActivity中建立的SQLiteDatabase來執行sql語句,這是為了java的單例模式,SQLiteDatabase這個對象有2中擷取方法,分别是getReadableDatabase()和getWritableDatabase().
增加完後,我們就需要将剛才增加的顯示在界面上,先寫一個查詢方法.如下
public static synchronized List<Student> selectAll(){
List<Student> list=new ArrayList<>();
String sql="select id,number,name,age from student limit 0,9";
Cursor cursor=null;
try {
cursor=MainActivity.sqLiteDatabase.rawQuery(sql,null);
while (cursor.moveToNext()){
Student student=new Student();
student.setId(cursor.getInt(0));
student.setNumber(cursor.getString(1));
student.setName(cursor.getString(2));
student.setAge(cursor.getString(3));
list.add(student);
}
return list;
}catch (Exception e){
return null;
}finally {
if (cursor!=null){
cursor.close();
}
}
}
在這裡一定需要注意,你查多少個字段那麼你Cursor.get時就隻能獲得多少個.不然會報異常.可能會導緻你程式崩哦.之後在界面上我就直接是用的一個簡單的Listview展示資料的效果如上面所示.
還有另外的功能和聲音裝載以及簡單的自定義view可以檢視源碼,源碼位址