sqlite数据库之三---封装好的sql语句的增删查改
来源:互联网 发布:跳跃网络贴吧 编辑:程序博客网 时间:2024/04/29 17:34
package cn.itcast.db.dao;import java.util.ArrayList;import java.util.List;import cn.itcast.db.MyDBOpenHelper;import cn.itcast.db.domain.Person;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class PersonDBDao {private Context context;MyDBOpenHelper dbOpenHelper;public PersonDBDao(Context context) {this.context = context;dbOpenHelper = new MyDBOpenHelper(context);}/** * 添加一条记录 */public void add(String name, int age) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();if (db.isOpen()) {// db.execSQL("insert into person (name,age) values (?,?)",new// Object[]{name,age});// db.execSQL("insert into person ",null) // 不合法的sql语句ContentValues values = new ContentValues();values.put("name", name);values.put("age", age);// 如果 contentvalues为空db.insert("person", null, values); // 组拼sql语句完成的添加的操作// insert into person name values (NULL) ;db.close();}}/** * 删除一条记录 */public void delete(String name) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();if (db.isOpen()) {db.delete("person", "name=?", new String[] { name });db.close();}}/** * 数据库的更改操作 */public void update(String name, String newname, int newage) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();if (db.isOpen()) {ContentValues values = new ContentValues();values.put("name", newname);values.put("age", newage);db.update("person", values, "name=?", new String[] { name });db.close();}}/** * 数据库的查询操作 */public boolean find(String name) {boolean result = false;SQLiteDatabase db = dbOpenHelper.getReadableDatabase();if (db.isOpen()) {// select * from personCursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);if (cursor.moveToFirst()) {result = true;}cursor.close();db.close();}return result;}/** * 查询所有信息 */public List<Person> findAll() {List<Person> persons = null;SQLiteDatabase db = dbOpenHelper.getReadableDatabase();if (db.isOpen()) {//得到游标.Cursor cursor = db.query("person", null, null, null, null, null,null);persons = new ArrayList<Person>();while (cursor.moveToNext()) {Person person = new Person();String name = cursor.getString(cursor.getColumnIndex("name"));person.setName(name);int age = cursor.getInt(cursor.getColumnIndex("age"));person.setAge(age);persons.add(person);}cursor.close();db.close();}return persons;}/** * 查询所有信息,游标查询的话必须用rawQuery. */public Cursor findAllbyCursor() {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();if (db.isOpen()) {/*Cursor cursor = db.query("person", null, null, null, null, null,null);*/
//select personid as _id,是给personid起了一个别名.游标查询适配器的时候不用_id容易出问题.Cursor cursor = db.rawQuery("select personid as _id,age,name from person", null);return cursor;// 注意了 一定不要把数据库 关闭了 }return null;}/** * 银行转账的方法 */public void transaction() {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();if (db.isOpen()) {try {// 一共四步.1开启数据库的事务db.beginTransaction();//2执行语句// 给张三设置1000块钱的账户db.execSQL("update person set account=? where name=?",new Object[] { 1000, "zhangsan98" });// 把张三的账户扣除200块钱db.execSQL("update person set account=account-? where name=?",new Object[] { 200, "zhangsan98" });// 出现了异常// 把张三的钱给李四//初始化李四账户 为 0db.execSQL("update person set account=? where name=?",new Object[] { 0, "lisi" });db.execSQL("update person set account=account+? where name=?",new Object[] { 200, "lisi" });//3设置事务的状态db.setTransactionSuccessful();}// 显示的设置事务是否成功catch (Exception e) {// TODO: handle exception} finally {//4结束事务db.endTransaction();db.close();}}}}
0 0
- sqlite数据库之三---封装好的sql语句的增删查改
- 通过Sql语句和android封装好的方法控制SQLite数据库增删改查
- 数据库Sqlite基本的增删改查语句
- Android SQLite增删改查的语句
- 数据库:SQLite数据库的增删改查
- SQLite数据库---数据库的增删改查
- SQLite数据库操作--使用SQL语句增删查改
- 通过Sql语句控制SQLite数据库增删改查
- SQLite数据库的增删改查代码
- Android数据库的SQLite增删改查
- SQLite数据库的增删改查
- SQLite数据库的增删改查
- SQLite数据库的增删改查
- android SQLite数据库的增删改查
- android sqlite数据库的增删改查
- SQLite数据库的增删改查
- SQLite数据库的增删改查
- SQLite数据库的增删改查
- Future和FutureTask
- android初级之Android获取网页数据的方法总结
- Wireshark基本介绍和学习TCP三次握手
- 华为笔试题目做题-2
- 黑马程序员 java学习笔记(day05)
- sqlite数据库之三---封装好的sql语句的增删查改
- “cout” "endl“: 未声明的标识符”是怎么回事
- ksh 逻辑运算
- 【ZOJ】3430 Detect the Virus AC自动机
- C++ builder 之错误总结:安装第三方控件后,编译报错“Linker Fatal Error Unable To Open File”
- iOS开发- 自动消失的弹出框
- Android应用出错 error: Error retrieving parent for item: No resource found that matches the
- 无法打开包括文件:“iostream.h”: No such file or directory
- jsp运行原理