在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助。
SQLite简介
SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。
SQLite数据库操作和常用的数据库操作差不多;如:MySQL......; 增删改查等语句操作基本相同; 今天给大家Android SQLite语句相关操作的两种方式
首先来看一下我的便签的效果图:(图中操作顺序:查询,添加,修改,删除)
image1:创建数据库和表,创建一个类;如下:
public class HelperSQLite extends SQLiteOpenHelper{
private SQLiteDatabase sqLiteDatabase;
/***
* 创建数据库
* @param context
*/
public HelperSQLite(Context context){
super(context, UtilDB.DATABASE_NAME, null, UtilDB.DATABASE_VERION);
sqLiteDatabase=this.getWritableDatabase();
}
/***
* 创建表
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(UtilDB.showCreateSql());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//用于更新
}
}
2:介绍添加数据的两种方法
//方式1 SQL语句的方式
String stu_sql="insert into "+UtilDB.DATABASE_TABLE+"("+UtilDB.USER_CONTENT+","+UtilDB.USER_YEAR+","+UtilDB.USER_TIME+") values('"+userContent+"','"+userYear+"','"+userTime+"')";
sqLiteDatabase.execSQL(stu_sql);
//方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,userContent);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
return sqLiteDatabase.insert(UtilDB.DATABASE_TABLE,null,contentValues)>0;//成功返回true
3:删除的两种方式
sqLiteDatabase.execSQL(sql);
String sql=UtilDB.USER_ID+"=?";
String[] contentValuesArray=new String[]{String.valueOf(id)};
return sqLiteDatabase.delete(UtilDB.DATABASE_TABLE,sql,contentValuesArray)>0;//成功返回true
4:修改的两种方式
//方式1
String sql = "update "+UtilDB.DATABASE_TABLE+" set "+UtilDB.USER_CONTENT+" = '"+content+"',"
+UtilDB.USER_YEAR+" = '"+userYear+"',"+UtilDB.USER_TIME+"='"+userTime+"' where "+UtilDB.USER_ID+" = "+id;
sqLiteDatabase.execSQL(sql);
//方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,content);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
String sql=UtilDB.USER_ID+"=?";
String[] strings=new String[]{id};
return sqLiteDatabase.update(UtilDB.DATABASE_TABLE,contentValues,sql,strings)>0; //成功返回true
5:查询数据 便签中 使用的是降序排列的
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,
null,null,null,null,null,UtilDB.USER_ID+" desc");//条件查询降序排序
得到数据:
方式1:
List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt(cursor.getColumnIndex(UtilDB.USER_ID))));
userInfo.setUserContent(cursor.getString(cursor.getColumnIndex(UtilDB.USER_CONTENT)));
userInfo.setUserYear(cursor.getString(cursor.getColumnIndex(UtilDB.USER_YEAR)));
userInfo.setUserTime(cursor.getString(cursor.getColumnIndex(UtilDB.USER_TIME)));
list.add(userInfo);
}
}
方式2:通过游标得到数据
List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){//通过游标得到数据
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt(0)));
userInfo.setUserContent(cursor.getString(1));
userInfo.setUserYear(cursor.getString(2));
userInfo.setUserTime(cursor.getString(3));
list.add(userInfo);
}
}
由于代码太多,就不一一贴出来了,直接下载即可,
网友评论