Androidx学习笔记(20)-- SQLite创建 增删改查(普通方式和API方式)
2016-01-24 18:40
513 查看
创建数据库
//数据库创建时,此方法会调用 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table person(_id integer primary key autoincrement, name char(10), salary char(20), phone integer(20))"); }
测试数据库
初始化成员
//此时测试框架还没有初始化完毕,没有虚拟上下文对象 // private MyOpenHelper oh = new MyOpenHelper(getContext(), "people.db", null, 1); private MyOpenHelper oh; private SQLiteDatabase db; //测试框架初始化完毕之后,在测试方法执行之前,此方法调用 @Override protected void setUp() throws Exception { super.setUp(); oh = new MyOpenHelper(getContext(), "people.db", null, 1); db = oh.getWritableDatabase(); }
关闭
//测试方法执行完毕之后,此方法调用 @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub super.tearDown(); db.close(); }
插入
public void insert(){ // db.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"小志的老婆[1]", "13000", 138438}); // db.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"小志的儿子", 14000, "13888"}); db.execSQL("insert into person (name, salary, phone)values(?, ?, ?)", new Object[]{"小志", 14000, "13888"}); }
注意:不检测数据类型,全部都是字符串类型保存的,不保存错误的数据类型,所以要注意书写正确
删除
public void delete(){ <span style="white-space:pre"> </span>db.execSQL("delete from person where name = ?", new Object[]{"小志"}); <span style="white-space:pre"> </span>}
修改
public void update(){ db.execSQL("update person set phone = ? where name = ?", new Object[]{186666, "小志的儿子"}); }
查询
public void select(){ Cursor cursor = db.rawQuery("select name, salary from person", null); while(cursor.moveToNext()){ //通过列字段名获取列的值 String name = cursor.getString(cursor.getColumnIndex("name")); //通过列索引获取列的值 String salary = cursor.getString(1); System.out.println(name + ";" + salary); } }
API调用(增删改查)
public void insertApi(){ //把要插入的数据全部封装至ContentValues对象 ContentValues values = new ContentValues(); values.put("name", "游天龙"); values.put("phone", "15999"); values.put("salary", 16000); db.insert("person", null, values); } public void deleteApi(){ int i = db.delete("person", "name = ? and _id = ?", new String[]{"小志的儿子", "3"}); System.out.println(i); } public void updateApi(){ ContentValues values = new ContentValues(); values.put("salary", 26000); int i = db.update("person", values, "name = ?", new String[]{"游天龙"}); System.out.println(i); } public void selectApi(){ Cursor cursor = db.query("person", null, null, null, null, null, null, null); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String phone = cursor.getString(cursor.getColumnIndex("phone")); String salary = cursor.getString(cursor.getColumnIndex("salary")); System.out.println(name + ";" + phone + ";" + salary); } }
相关文章推荐
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
- Androidx学习笔记(19)-- SQLite 简介
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- Androidx学习笔记(18)-- junit单元测试
- Android LayoutInflater inflate 理解
- 打开已存在 Android项目及常见的问题
- android AccessibilityService的用法
- 移植开源EasyPR的车牌识别源码到Android工程
- android studio快捷键
- 开发者日志(2016年01月24日17:47:27):关于Android BaseAdapter
- android mvp快速开发框架介绍(开始dileber)
- Android studio开发百度地图API
- android graphic(4)—surfaceflinger和Vsync
- Android studio 创建签名文件
- Android应用实现退出时关闭所有Activity
- Android使用adb获得activity堆栈信息
- SlidingMenu开源库
- Android中View的事件分发机制