下午学习了SQLite并用刚学的做了一个非常简单的信息管理系统,系统完整做出来之后,我感觉单机版的管理系统都应该能做出来了!!!!
现在开始讲讲SQLite的用法(增删查改)
介绍什么的就不说了,百度一大推,还有讲一下,既然是数据库我都喜欢图形化的操作,我在网上找了个,感觉不错推荐大家用一下
http://yunpan.cn/Q7bYmCQucJ9qU 提取码 fb99
界面是这样的
用起来挺方便的!
SQLite提供了一个类SQLiteOpenHelper,可以当做一个工具类
自己写一个DBOpenHelper来继承它,里面修改数据库名和版本号。代码如下:
public class DBOpenHelper extends SQLiteOpenHelper {
private static final String DBNAME = "sutdent.db";
private static final int VERSION = 1;
private static final String TAG="DBOpenHelper";
/**
*
* @param context
* 构造函数(库名、版本号)
*/
public DBOpenHelper(Context context) {
super(context,DBNAME, null, VERSION);
}
@Override
/*
* (non-Javadoc)
* @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
* 一般是建表和默认数据
*/
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE table_student(sid integer primary key,name varchar(20),age inter);";
db.execSQL(sql);
db.execSQL("insert into table_student values(1,'雄霸天',20)");
db.execSQL("insert into table_student values(2,'黑旋风',21)");
db.execSQL("insert into table_student values(3,'帅气刘',22)");
Log.i(TAG, "onCreate");
}
@Override
/**
* 一般是应用升级使用,同时对数据库进行升级
*
*/
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade");
}
}
大家可以看看上述代码,很简单
super(context,DBNAME, null, VERSION);
指定数据库的名字,这里说一下,数据库的名字最好加上“.db”如“student.db”这样才能算是一个标准的数据库文件
版本号就默认1
数据库的语句依然是SQL语句,没有改变,改变的是如何运行这些sql语句
下面介绍一下(最基础最基本的运行方法)
增加,删除等不返回数值的sql语句可以使用
<span style="white-space:pre"> </span>db.execSQL(sql);
db.execSQL("update table_student set name="+name+",age="+age+" where sid="+id);
db.execSQL(sql, Object[]);
db.execSQL("update table_student set name=?,age=? where sid=?",new Object[]{name,age,id});
同样的效果,建议用第二种!
到这里不禁要问,db如何而来
在使用Model里使用DBOpenHelper的时候这样写
private DBOpenHelper helper;
private SQLiteDatabase db;
public StudentDao(Context context){
helper = new DBOpenHelper(context);
db = helper.getWritableDatabase();
}
然后就任意使用db了
当需要从数据库提取值的时候需要这样用
/*获取全部学生*/
public List<Student> getAllList(){
List<Student> list = new ArrayList<Student>();
Cursor cursor = db.rawQuery("select * from table_student"});
while(cursor.moveToNext()){
Student student = new Student(cursor.getInt(0),cursor.getString(1),cursor.getShort(2));
list.add(student);
}
return list;
}
注意这个Cursor就像SQL里的Result一样,sql语句需要query,当然了也有其他的方法如
Cursor cursor = db.query("table_student", null, null, null, null, null, null);
这样写有点繁琐,不如一句sql语句痛快,这样写,参数比较多
我喜欢第一种
别忘了最后要关闭db,不然电脑会变卡的!
到此SQLite算是入门了,基本的增删查改都会了,管理系统就能很轻松的写出来了!!!!