Android下SQL语句实现数据库的增删改查
回顾一下JavaWeb下操作数据库的步骤
- 加载JDBC驱动
- 连接到数据库
- 准备SQL语句 增删改查
Android下操作数据库
- 因为android已经封装好了,默认支持SQLite,所以已经在framework加载了jdbc的驱动
- Mysql数据库需要配置连接字符串,用户名密码等,而android下就不需要,只需拿到一个数据库的引用
- 直接执行SQL语句
接着上一篇,我们通过helper.getWritableDatabase();拿到数据库
SQLiteDatabase db = helper.getWritableDatabase();
getWritableDatabase()介绍:Once opened successfully, the database is cached, so you can call this method every time you need to write to the database. (Make sure to call close when you no longer need the database.) (一旦我们拿到了这个数据库,我们就可以向这个数据库写入数据,但是我们一定要记得使用完毕后,一定要关闭)
SQL语句
- 添加:
insert into person (name,number) values ('JEck_DE','123456')
- 查询全部:
select * from person
- 查询具体:
select * from person where name='JEck_DE'
- 修改:
update person set number='987654' where name='JEck_DE'
- 删除:
delete from person where name='JEck_DE'
新建DAO(data access object)数据访问类
- 我们希望,在DAO类实现的时候,我们就能拿到数据库对象,所以,我们在代码中,先把helper的对象实例化出来,再实现PersonDao的实现方法。
- 好处:在构造方法里面完成helper的初始化。
- 注意:我们在拿到数据库对象的同时,先把close方法写出来,避免写完方法后忘记
存入数据:执行SQL语句
db.execSQL("insert into person (name,number) values ('JEck_DE','123456')")
- 但是当要存入的字符串中有引号或者其他特殊符号时,就会导致SQL语句编译失败,所以最好使用占位符的方式
db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
- 注意后面要new 出一个object类型的数组,数组里的元素,要与占位符的位置相对应
- 参数介绍:
execSQL(String sql, Object[] bindArgs):
sql the SQL statement to be executed. Multiple statements separated by semicolons are not supported.(需要执行的SQL语句)
bindArgs only byte[], String, Long and Double are supported in bindArgs.(Object类型的数组)
- 参数介绍:
查询数据:rawQuery(同样使用占位符的方式
db.rawQuery("select * from person where n