您的位置:首页 > 数据库

安卓--SQLite数据库的简单使用(说明+代码)

2016-07-20 23:16 375 查看
安卓中常用SQLite进行存储,这篇文章不说明SQLite原理(因为我也不懂。。。)只说说使用方法

对数据库打开和操作自然少不了SQLiteOpenHelper的帮助,这里主要介绍SQLiteOpenHelper和自定义中间件在程序中的使用。

数据库、SQLiteOpenHelper、自定义数据库操作类、应用程序 这四个之间的关系如图



1 SQLiteOpenHelper

自定义sqlhelper类继承SQLiteOpenHelper,用于创建或打开数据库

public class MyDataBaseHelper extends SQLiteOpenHelper {

private static final int VERSION = 1;

public MyDataBaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);

}

public MyDataBaseHelper(Context context,String name,int version) {
this(context,name,null,version);
}

public MyDataBaseHelper(Context context,String name) {
this(context,name,VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}


2 自定义数据库类

用于实现数据的各种操作,使得应用程序使用时,实例化对象即可调用

public class MyDataBaseUint {
public static final String DATABASE_NAME = "userinfo_db";

public static final String DATETIME = "noteinfo";
public static final String CONTENT = "content";
private MyDataBaseHelper dbHelper;

public MyDataBaseUint(Context context) {
dbHelper = new MyDataBaseHelper(context, DATABASE_NAME);
SQLiteDatabase db = dbHelper.getWritableDatabase();
}

public boolean CreateTable(String tablename) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String CREATE_TABLE = "CREATE TABLE user" + tablename + "( id INT  IDENTITY(1,1) PRIMARY KEY,"
+ "filename TEXT," + "time TEXT," + "location TEXT," + "contain TEXT)";
try {
db.execSQL(CREATE_TABLE);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}

public boolean InsertData(String tablename, String[] values) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String INSERT_DATA = "INSERT INTO user" + tablename + " (filename,time,location,contain)" + " VALUES (\""
+ values[0] + "\",\"" + values[1] + "\",\"" + values[2] + "\",\"" + values[3] + "\")";
try {
db.execSQL(INSERT_DATA);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}

// 删除数据 返回值true false
public boolean DeleteData(String tablename, String key, String value) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String DELETE_DATA = "DELETE FROM user" + tablename + " WHERE " + key + " = \"" + value+"\"";
try {
db.execSQL(DELETE_DATA);
return true;
} catch (Exception e) {
return false;
}
}

// 更新操作就相当于执行SQL语句当中的update语句
// UPDATE table_name SET XXCOL=XXX WHERE XXCOL=XX...
public boolean UpdateData(String tablename, String []values, String key) {

SQLiteDatabase db = dbHelper.getWritableDatabase();
String sqlstr="UPDATE user"+tablename
+" SET "+" filename = \""+values[0]+"\""
+", location = \""+values[2]+"\""
+", contain = \""+values[3]+"\""
+" WHERE "+" time = \"" + key+"\"";
try {
db.execSQL(sqlstr);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}

// 查询数据,返回List<HashMap<String, String>>
public List<HashMap<String, String>> QueryData(String tablename) {
List<HashMap<String, String>> datalist = new ArrayList<HashMap<String, String>>();
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sqlstr = "SELECT * FROM user" + tablename;
Cursor cursor = db.rawQuery(sqlstr, null);
while (cursor.moveToNext()) {
HashMap<String, String> data = new HashMap<String, String>();
data.put("filename", cursor.getString(cursor.getColumnIndex("filename")));
data.put("time", cursor.getString(cursor.getColumnIndex("time")));
data.put("location", cursor.getString(cursor.getColumnIndex("location")));
data.put("contain", cursor.getString(cursor.getColumnIndex("contain")));
datalist.add(data);
}
return datalist;
}
}


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