android SQLite使用介绍

拟墨画扇 提交于 2020-04-06 08:19:20

嵌入式关系型SQLite数据库与普通数据库的最大区别是:
嵌入式关系型SQLite数据库除了主键外,没有数据类型之分。即整型字段可以用来存放字符数据,反之字符串字段也可以用来存放整型值

SQLite使用方法步骤:


第一步:编写一个类并继承SQLiteOpenHelper;
该类我认为有两个作用:第一:用来取得操作sql语句的对象
					    第二:用来管理数据库的版本,可以进行相应的更新
简单的实例:
public class DBOpenHelperService extends SQLiteOpenHelper {
	
	private static final String DATABASENAME = "smuoj.db"; //数据库名称
	private static final int DATABASEVERSION = 1;//数据库版本


	public DBOpenHelperService(Context context) {
		super(context, DATABASENAME, null, DATABASEVERSION);
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE _person (personid integer primary key autoincrement, name varchar(20), age integer)");//执行有更改的sql语句
	}
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		db.execSQL("DROP TABLE IF EXISTS _person");
		onCreate(db);
	}
}
第二步:根据要求编写相应的增删改查..的代码
注意:dbOpenHelperService.getWritableDatabase();通过这个函数可以取得操作数据库的对象
当调用这个方法时,如果数据库不存在,则会创建数据库,并执行Oncreate()方法
				   如果版本信息改变,则会执行onUpgrade()这个方法
如:编写保存 与 查找
public class DB {
	private  DBOpenHelperService dbOpenHelperService;
	private SQLiteDatabase db ;
	public DB(Context context) {
		dbOpenHelperService = new DBOpenHelperService(context);
		db  = dbOpenHelperService.getWritableDatabase();
	}
	public  void save(Person person){
		
		String sql = "insert into _person(name,age) values(?,?)";
		db.execSQL(sql,new Object[]{person.getName(),person.getAge()});
		db.close();
	}
	public List<Person> find(){
		List<Person> persons = new ArrayList<Person>();
		String sql = "select * from _person";
		Cursor cursor = db.rawQuery(sql,null);
		while(cursor.moveToNext()){
			Person person = new Person();
			person.setName(cursor.getString(cursor.getColumnIndex("name")));
			person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
			persons.add(person);
		}
		return persons;
	}
}




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!