sqlite数据库增删改查三种格式

1.普通的sql语句

2.crud直接写sql语句

3.curd占位符

* onUpgrade方法中实现

//当数据库的版本号变大时调用

@Override

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

Log.d(TAG, "onUpgrade---oldVersion:" + oldVersion + "## newVersion:" + newVersion);

//升级修改数据库中内容,添加表

db.execSQL("create table info (id,name,phone)");

}

## 数据库的curd-直接写sql语句 ##

* 增

/**

* 指定用户名和金额插入一条记录

*

* @param name

* @param money

*/

public void insert(String name, float money) {

// 1.创建helper对象

// BankDBOpenHelper helper = new BankDBOpenHelper(context);

// 2.获得可读写数据库

SQLiteDatabase db = helper.getWritableDatabase();

String sql = "insert into account (name,money) values ('" + name + "',"

+ money + ")";

Log.d(TAG, sql);

// 3.执行插入sql语句

db.execSQL(sql);

}

* 删

// 删 delete from account where name='zhangsan'

/**

* 指定用户名,删除表中一行记录

*

* @param name

*/

public void delete(String name) {

SQLiteDatabase db = helper.getWritableDatabase();

db.execSQL("delete from account where name='" + name + "'");

}

* 改

// 改 update account set money=19.9 where name='zhangsan'

/**

* 指定用户名修改用户金额

*

* @param name

* @param money

*/

public void update(String name, float money) {

SQLiteDatabase db = helper.getWritableDatabase();

db.execSQL("update account set money=" + money + " where name='" + name

+ "'");

}

* 查

// 查 select money from account where name='zhangsan'

/**

* 指定用户查金额

* @param name

* @return -1表示未查到记录;正数,查出结果

*/

public float query(String name) {

SQLiteDatabase db = helper.getReadableDatabase();

// 调用rawQuery查询

Cursor cursor = db.rawQuery("select money from account where name='"

+ name + "'", null);

// cursor 游标,指针,提供移动到第一条记录,移动到下一条记录,移动到最后一条记录

// cursor.moveToFirst()

// cursor.moveToNext()

// cursor.moveToLast()

float money = -1;//-1表示未查到记录

//判断是否存在第一条数据

if(cursor.moveToFirst()){

//取出指定列的数据

//参数是以0为起点数组下标 money (0) name (1) id (2)

//money = cursor.getFloat(0);

money = cursor.getFloat(cursor.getColumnIndex("money"));

}

cursor.close();//cursor必须关闭,否则会有内存泄露(申请了没释放)。

return money;

}

## 内存有关错误说明 ##

* 内存溢出:要申请的内存比现有内存大,内存不够

* 内存泄露:申请内存空间,不再使用内存时,不释放

## curd-占位符 ##

* 改

// db.execSQL("update account set money=" + money + " where name='" + name

// + "'");

db.execSQL("update account set money=? where name=?", new Object[]{money,name});

* 插入

// String sql = "insert into account (name,money) values ('" + name + "',"

// + money + ")";

// 3.执行插入sql语句 ?占位符,表示此处应有数据

db.execSQL("insert into account (name,money) values (?,?)",new Object[]{name,money});

* 删

// db.execSQL("delete from account where name='" + name + "'");

db.execSQL("delete from account where name=?", new Object[]{name});

* 查

// 调用rawQuery查询

// Cursor cursor = db.rawQuery("select money from account where name='"

// + name + "'", null);

Cursor cursor = db.rawQuery("select money from account where name=?", new String[]{name});

## curd-谷歌api ##

* 增

// 3.执行插入sql语句 ?占位符,表示此处应有数据

//db.execSQL("insert into account (name,money) values (?,?)",new Object[]{name,money});

ContentValues values = new ContentValues();

values.put("name", name);

values.put("money", money);

/**

* 参数1 table 要插入表名

* 参数2 nullColumnHack 空列处理,一般null

* 参数3 values是一个map集合,key(列名)-value(列的值)

*/

long rowId = db.insert("account", null, values);

* 删

// db.execSQL("delete from account where name=?", new Object[]{name});

//account  name=? new Object[]{name}

/**

* 参数1 表名

* 参数2 删除条件,where后面部分,带?占位符

* 参数3 删除条件中?对应数据

*/

int delete = db.delete("account", "name=?", new String[]{name});

* 改

//db.execSQL("update account set money=? where name=?", new Object[]{money,name});

ContentValues values = new ContentValues();

values.put("money", money);

// account  money=?(contentValues集合保存)  name=?

db.update("account", values , "name=?", new String[]{name});

* 查

//Cursor cursor = db.rawQuery("select money from account where name=?", new String[]{name});

//money,id  account where name=?

/**

* 参数1 表名

* 参数2 字符串数组保存要查出哪些列

* 参数3 where后面条件,带?

* 参数4 where后面条件中占位符?,对应数据

* 参数5 null

* 参数6 null

* 参数7 null

*/

Cursor cursor = db.query("account", new String[]{"money","id"}, "name=?", new String[]{name}, null, null, null);

你可能感兴趣的:(sqlite数据库增删改查三种格式)