#Android学习#Sqlite数据库的创建

创建数据库的一般步骤

1.0 创建一个类,继承SqliteOpenHelper,然后重写onCreate()、onUpGrade()这两个方法;

public class MySqliteOpenHelper extends SQLiteOpenHelper {
    
    

/*
* context:上下文;
* name:数据文件的名称;
* factory:用来创建cursor对象;
* version:数据库的版本号,从 1 开始,版本号如果发生改变 ,onUpgrade()方法会被调用;
* */
public MySqliteOpenHelper(Context context) {
super(context, "info.db", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
//在数据库文件第一次创建的时候会回调该方法,适合做表结构的初化
//需要执行sql语句;SQLiteDateBase db可以用来执行sql语句;
db.execSQL("CREATE TABLE info(_id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(20), age VARCHAR(20))");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//数据库发生改变的时候会回调该方法;特别适合表结构发生改变;
    }
}

2.0 创建这个继承于帮助类的一个对象,调用getReadableDatabase()方法,会帮助我们创建打开一个数据库;

MySqliteOpenHelper mySqliteOpenHelper = new MySqliteOpenHelper(context);
SQLiteDatabase db = mySqliteOpenHelper.getWritableDatabase();

3.0 创建数据后之后,可以对SQLite建立的表进行操作:
对数据库进行基本操作的基本思路:获取继承于SQLiteOpenHelper的对象,然后通过getWritableDatabase()方法得到一个SQLiteDatabase类型的返回值,从而对数据库进行基本的操作;

4.0 对数据库进行添加数据

//数据库的添加操作
public void add(ArrayList<SqliteTableBean> arrayList) {
for (int i = 0; i < arrayList.size(); i++) {
sqliteTableBean.name = arrayList.get(i).name;//实体类
sqliteTableBean.phone = arrayList.get(i).phone;//实体类
SQLiteDatabase database = mySqliteOpenHelper.getWritableDatabase();
database.execSQL("insert into info(name, phone) values(?, ?)", new Object[]{sqliteTableBean.name,
sqliteTableBean.phone});
database.close();//关闭操作;
    }
}

5.0 对数据库进行查询数据(适合做多表查询)

//数据库的查找
public void querry(String name) {
//调用getgetWritableDatabase()方法,来初始化数据库的创建;
SQLiteDatabase database = mySqliteOpenHelper.getWritableDatabase();
/*
* 参数:
* String sql:sql语句
* String[] selectionArgs:查询条件占位的值,返回一个查询光标
* */
Cursor cursor = database.rawQuery("select _id, name, phone from info where name = ?"
, new String[]{name});
//解析cursor中的数据
if (cursor.moveToNext() && cursor.getCount() > 0) {
   
   //判断cursor中是否存在数据
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String name_table = cursor.getString(1);
String phone = cursor.getString(2);

Toast.makeText(context, "_id:" + id + " name:" + name + " phone:" + phone
, Toast.LENGTH_SHORT).show();
}
}

6.0 对数据库进行删除数据

//数据库的删除
public void delete(String sqliteTableBean) {
SQLiteDatabase database = mySqliteOpenHelper.getWritableDatabase();
database.execSQL("delete from info where name = ?", new Object[]{sqliteTableBean});
}

猜你喜欢

转载自blog.csdn.net/HongHua_bai/article/details/71405817