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 selectAll(){
List 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可以查看源码,源码地址