Android学习之路之数据的使用(二)

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








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值