在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助。
SQLite简介
SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。
SQLite数据库操作和常用的数据库操作差不多;如:MySQL......; 增删改查等语句操作基本相同; 今天给大家Android SQLite语句相关操作的两种方式
首先来看一下我的便签的效果图:(图中操作顺序:查询,添加,修改,删除)
1:创建数据库和表,创建一个类;如下:
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:删除的两种方式
String sql = "delete from "+UtilDB.DATABASE_TABLE+" where "+UtilDB.USER_ID+" = "+id; 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); } }
由于代码太多,就不一一贴出来了,直接下载即可, 源码点击下载
不足之处请留言指正!有问题的可以给我留言!谢谢!