以下代码数据库的关闭在Activity当中,因为频繁的关闭很容易引起数据库报错
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "mydata.db"; //数据库名称
private static final int version = 1; //数据库版本
private static final String TABLE_NAME = "user";//数据库表名
ArrayList<String> nameList=new ArrayList<String>();
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建用户名,名称不能为空
String sql = "create table "+TABLE_NAME+"(username varchar(20) not null , password varchar(60) );";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//如果数据库有更新就清空表数据
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
}
/**
* 查询获取集合数据
*/
public ArrayList<String> getNames(){
nameList.clear();
SQLiteDatabase database = getReadableDatabase();
Cursor rawQuery = database.rawQuery("select * from "+TABLE_NAME, null);
while(rawQuery.moveToNext()){
String name = rawQuery.getString(rawQuery.getColumnIndex("username"));
String password = rawQuery.getString(rawQuery.getColumnIndex("password"));
System.out.println("username:"+name+" password:"+password);
nameList.add(name);
}
rawQuery.close();
return nameList;
}
/**
* 根据username来改变password
*/
public void updatePassword(String userName,String password){
System.out.println("-----执行了修改-----");
SQLiteDatabase database = getWritableDatabase();
String sql = "update "+TABLE_NAME+" set password='"+password+"' where username = '"+userName+"'";
database.execSQL(sql);
}
/**
* 根据名称删除该条数据
*/
public void delete(String userName){
System.out.println("-----执行了删除-----");
SQLiteDatabase database = getWritableDatabase();
String sql = "delete from "+TABLE_NAME+" where username = '"+userName+"'";
database.execSQL(sql);
}
/**
* 如果多条数据就要开启事物,避免重复的对磁盘进行操作
*/
public void insertNames(ArrayList<String> names){
SQLiteDatabase database = getWritableDatabase();
try{
database.beginTransaction();
for (int i = 0; i < names.size(); i++) {
ContentValues values=new ContentValues();
values.put("username", names.get(i));
values.put("password", names.get(i));
database.insert("user", null, values);
}
database.setTransactionSuccessful();
}finally{
database.endTransaction();
}
}
}
源码下载地址:http://download.youkuaiyun.com/download/aaren_jiang/6516449