您的位置:首页 > 数据库

SQLite使用基础

2015-10-30 20:18 288 查看
数据库的增删改查操作,实现对封装了bean的操作。建表:
@Override
publicvoidonCreate(SQLiteDatabasedb){
Stringsql="CREATETABLE"+TABLE_NAME+"("+_ID
+"INTEGERPRIMARYKEYAUTOINCREMENT,"+_USERNAME
+"TEXTNOTNULL,"+_PASSWORD+"TEXT)";
Log.i(TAG,sql);
db.execSQL(sql);
}
增加数据:①利用sql语句
publicvoidadd(Useru){
Stringsql="INSERTINTO"+TABLE_NAME+"("+_USERNAME+","
+_PASSWORD+")VALUES(?,?)";
Log.i(TAG,sql);
db.execSQL(sql,newObject[]{u.getUserName(),u.getPassWord()});
}
②高级做法
publicvoidadd_(Useru){
ContentValuesvalues=newContentValues();
	values.put(_USERNAME,u.getUserName());
	values.put(_PASSWORD,u.getPassWord());
	db.insert(TABLE_NAME,null,values);
}
db.insert(TABLE_NAME,null,values);①参数一:表名②参数二:可选的,一般为空,当values参数为空或者里面没有内容的时候,insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,我们要在这里设置一个列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。删除数据:①利用sql语句
publicvoiddel(intid){
	Stringsql="DELETEFROM"+TABLE_NAME+"WHERE"+_ID+"=?";
Log.i(TAG,sql);
db.execSQL(sql,newObject[]{id});
}
②高级做法
publicvoiddel_(intid){
	StringwhereClause=_ID+"=?";
	String[]whereArgs={id+""};
	db.delete(TABLE_NAME,whereClause,whereArgs);
}
db.delete(TABLE_NAME,whereClause,whereArgs)参数一:表名参数二:where后面添加的条件,看好格式参数三:条件中?参数的值的数组更改数据:①利用sql
publicvoidupdate(Useru){
	Stringsql="UPDATE"+TABLE_NAME+"SET"+_USERNAME+"=?,"+_PASSWORD+"=?"+"WHERE"+_ID+"=?";
Log.i(TAG,sql);
db.execSQL(sql,
newObject[]{u.getUserName(),u.getPassWord(),u.getId()});
}
②推荐做法
publicvoidupdate_(Useru){
ContentValuesvalues=newContentValues();
	values.put(_USERNAME,u.getUserName());
	values.put(_PASSWORD,u.getPassWord());
	StringwhereClause=_ID+"=?";//可以有多个条件的
	String[]whereArgs={u.getId()+""};
	db.update(TABLE_NAME,values,whereClause,whereArgs);
}
db.update(TABLE_NAME,values,whereClause,whereArgs):荐做法参数一:表名参数二:更改之后的ContentValues类型的值参数三:条件语句,格式参数四:条件中?号所对应的值查询数据:①sql语句做法
publicList<User>queryAll(){
	List<User>list=newArrayList<User>();
	Stringsql="SELECT*FROM"+TABLE_NAME;
Log.i(TAG,sql);
	Cursorcursor=db.rawQuery(sql,null);
	while(cursor.moveToNext()){
		Useru=newUser();
u.setId(cursor.getInt(cursor.getColumnIndex(_ID)));
u.setUserName(cursor.getString(cursor.getColumnIndex(_USERNAME)));
u.setPassWord(cursor.getString(cursor.getColumnIndex(_PASSWORD)));
list.add(u);
}
	returnlist;
}
②高级用法
publicList<User>queryAll_(){
	List<User>list=newArrayList<User>();
	Cursorcursor=db.query(TABLE_NAME,null,null,null,null,null,
null);
	while(cursor.moveToNext()){
		Useru=newUser();
u.setId(cursor.getInt(cursor.getColumnIndex(_ID)));
u.setUserName(cursor.getString(cursor.getColumnIndex(_USERNAME)));
u.setPassWord(cursor.getString(cursor.getColumnIndex(_PASSWORD)));
list.add(u);
}
	returnlist;
}
db.query(table,columns,selection,selectionArgs,groupBy,having,orderBy)上面都给空,代表就是select*fromuser;参数一:表名参数二:需要查询的字段参数三:筛选的语句,类似于where中的条件参数四:筛选条件中的值参数四:为分组增加条件参数五:分组之后的条件参数六:排序还有三个构造方法。看名称就能看懂。实现分页的功能的查询:
publicCursorquery(intcurrentPage,intpageSize){
	intstart=(currentPage-1)*pageSize;
	Stringlimit=start+","+pageSize;//和sql语句基本一样
	Cursorcursor=db.query(TABLE_NAME,null,null,null,null,null,null,limit);
	returncursor;
}
整体的代码:
importjava.util.ArrayList;
importjava.util.List;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.util.Log;
importcom.mixm.bean.User;
publicclassUserDBHelper{
	privatestaticfinalStringTAG="UserDBHelper";
	privatestaticfinalStringDATABASE_NAME="user.db";
	privatestaticfinalintVERSISON=1;
	privatestaticfinalStringTABLE_NAME="user";
	privatestaticfinalString_ID="id";
	privatestaticfinalString_USERNAME="username";
	privatestaticfinalString_PASSWORD="password";
	privateUserHelperuserHelper;
	privateSQLiteDatabasedb;
	//内部类
	classUserHelperextendsSQLiteOpenHelper{
		publicUserHelper(Contextcontext){
			super(context,DATABASE_NAME,null,VERSISON);
}
@Override
		publicvoidonCreate(SQLiteDatabasedb){
		Stringsql="CREATETABLE"+TABLE_NAME+"("+_ID
		+"INTEGERPRIMARYKEYAUTOINCREMENT,"+_USERNAME
		+"TEXTNOTNULL,"+_PASSWORD+"TEXT)";
	Log.i(TAG,sql);
		db.execSQL(sql);
}
@Override
		publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
}
}
	publicUserDBHelper(Contextcontext){
		userHelper=newUserHelper(context);
		db=userHelper.getWritableDatabase();
}
	//普通
	publicvoidadd(Useru){
	Stringsql="INSERTINTO"+TABLE_NAME+"("+_USERNAME+","
	+_PASSWORD+")VALUES(?,?)";
Log.i(TAG,sql);
db.execSQL(sql,newObject[]{u.getUserName(),u.getPassWord()});
}
	//高级一般做法
	publicvoidadd_(Useru){
	ContentValuesvalues=newContentValues();
		values.put(_USERNAME,u.getUserName());
		values.put(_PASSWORD,u.getPassWord());
		db.insert(TABLE_NAME,null,values);
}
	publicvoiddel(intid){
		Stringsql="DELETEFROM"+TABLE_NAME+"WHERE"+_ID+"=?";
Log.i(TAG,sql);
	db.execSQL(sql,newObject[]{id});
}
	publicvoiddel_(intid){
		StringwhereClause=_ID+"=?";
		String[]whereArgs={id+""};
		db.delete(TABLE_NAME,whereClause,whereArgs);
}
	publicvoidupdate(Useru){
		Stringsql="UPDATE"+TABLE_NAME+"SET"+_USERNAME+"=?,"
				+_PASSWORD+"=?"+"WHERE"+_ID+"=?";
Log.i(TAG,sql);
	db.execSQL(sql,
				newObject[]{u.getUserName(),u.getPassWord(),u.getId()});
}
	publicvoidupdate_(Useru){
	ContentValuesvalues=newContentValues();
		values.put(_USERNAME,u.getUserName());
		values.put(_PASSWORD,u.getPassWord());
		StringwhereClause=_ID+"=?";
		String[]whereArgs={u.getId()+""};
		db.update(TABLE_NAME,values,whereClause,whereArgs);
}
	publicList<User>queryAll(){
		List<User>list=newArrayList<User>();
		Stringsql="SELECT*FROM"+TABLE_NAME;
Log.i(TAG,sql);
		Cursorcursor=db.rawQuery(sql,null);
		while(cursor.moveToNext()){
			Useru=newUser();
	u.setId(cursor.getInt(cursor.getColumnIndex(_ID)));
	u.setUserName(cursor.getString(cursor.getColumnIndex(_USERNAME)));
	u.setPassWord(cursor.getString(cursor.getColumnIndex(_PASSWORD)));
	list.add(u);
}
		returnlist;
}
	publicList<User>queryAll_(){
		List<User>list=newArrayList<User>();
		Cursorcursor=db
				.query(TABLE_NAME,null,null,null,null,null,null);
		while(cursor.moveToNext()){
			Useru=newUser();
	u.setId(cursor.getInt(cursor.getColumnIndex(_ID)));
	u.setUserName(cursor.getString(cursor.getColumnIndex(_USERNAME)));
	u.setPassWord(cursor.getString(cursor.getColumnIndex(_PASSWORD)));
	list.add(u);
}
		returnlist;
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: