SQLite数据库对数据的基本操作(二)
程序员文章站
2022-06-01 08:49:21
...
public class MainActivity extends BaseActivity implements OnClickListener {
private SQLiteDatabase sqLiteDatabase;
private ContentValues values;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
MySqliteDataBase mySqliteDataBase = new MySqliteDataBase(this, 1);
// 获取一个数据库的操作对象,对数据库进行操作(增删改查)
sqLiteDatabase = mySqliteDataBase.getReadableDatabase();
}
// 设置控件的点击事件
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
String addName = getViewContent(addNameEditText);
String addPrice = getViewContent(addPriceEditText);
if (addName == null || addName.equals("") || addPrice.equals("")) {
toast("您输入的商品名称和价格有误,请重新输入");
return;
}
//方式一:
/**
* 第一个参数:sql语句
* 第二个参数:占位符的值
* */
//sqLiteDatabase.execSQL("insert into good(name,price) values (?,?)", new Object[]{addName,addPrice});
//方式二:
/**
* 参数一:表名
* 参数二:通常设置为空
* 参数三:需要插入的数据的集合
* */
values = new ContentValues();
values.put("name", addName);//key要和表中的字段名称一样
values.put("price", addPrice);
sqLiteDatabase.insert("good", null, values);
toast("商品添加成功!!!");
break;
case R.id.delete:
String deleteid = getViewContent(deleteIdEditText);
//方式一:
//sqLiteDatabase.execSQL("delete from good where id = ?", new Object[]{deleteid});
//方式二:
/**
* 参数一:表名
* 参数二:删除的条件,通常写成 :"xx=?"
* 参数三:删除的id
* */
sqLiteDatabase.delete("good", "id=?", new String[]{deleteid});
toast("数据删除成功!!!");
/**
删除所有数据
*/
//方式一执行sql语句
db.execSQL("delete from good");
方式二:调用delete方法
//db.delete(good,null,null);
break;
case R.id.updata:
String updateName = getViewContent(updataNameEditText);
String updateId = getViewContent(updataIdEditText);
//方式一:
//sqLiteDatabase.execSQL("update good set name = ? where id = ?",new Object[]{updateName,updateId});
//方式二:
/**
* 参数一:表名
* 参数二:需要更新的数据的集合
* 参数三:sql语句的条件字符串
* 参数四:补全参数三中的占位符
* */
values = new ContentValues();
values.put("name", updateName);
sqLiteDatabase.update("good", values, "id=?", new String[]{updateId});
toast("数据更新成功!!!");
break;
case R.id.find:
//方式一:
// Cursor cursor = sqLiteDatabase.rawQuery("select * from good",
// null);
// StringBuilder builder = new StringBuilder();
// while (cursor.moveToNext()) {
// String name = cursor.getString(cursor.getColumnIndex("name"));
// String price = cursor.getString(cursor.getColumnIndex("price"));
// String id = cursor.getString(cursor.getColumnIndex("id"));
// builder.append(name + "," + price + "," + id + "\r\n" );
// }
// textView.setText(builder.toString());
//方式二:
/**
* 参数一:表名
* 参数二:查询的列数组(为null时,默认查找所有的列)
* 参数三:查询条件(为null,则没有限制),预编译
* 参数四:填充参数三中预编译的占位符
* 参数五:
* 参数六:
* 参数七:
* 参数八:
* */
List<Goods> listGoods = new ArrayList<Goods>();
//查询单个数据
//Cursor cursor = sqLiteDatabase.query("good", new String[]{"id","name","price"}, "id=?", new String[]{"63"}, null, null, null,null);
//查找所有的数据
Cursor cursor = sqLiteDatabase.query("good", null, null, null,null, null, null, null);
StringBuilder builder = new StringBuilder();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String price = cursor.getString(cursor.getColumnIndex("price"));
goods = new Goods();
goods.setId(id);
goods.setName(name);
goods.setPrice(price);
//将对象添加到集合中
listGoods.add(goods);
}
for (Goods g : listGoods) {//类型 数据源新的名字 : 数据源
builder.append(g + "\r\n");
}
textView.setText(builder.toString());
break;
}
}
}
上一篇: windows 下 MongoDB 安装与环境配置
下一篇: 插入记录时,提前获取记录自增id