下午学习了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算是入门了,基本的增删查改都会了,管理系统就能很轻松的写出来了!!!!