天天看點

Android資料庫增删改查

1、前言

在我們Android開發中我們少不了對Android的資料庫進行操作,今天做了一個完整的增删改查Demo,還裝載了SoundPool作為提示音以及簡單的自定義View。

話不多說我們直接看代碼

Android資料庫增删改查

這裡我直接使用了簡單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可以檢視源碼,源碼位址