【android】SQLite数据库的创建和操作、SQLite数据库可视化
2015-12-17 20:35
579 查看
SQLite数据库的创建和操作
Email:chentravelling@163.com
前天学习了一下界面布局和activity,昨天抽了一会时间捣腾了一下SQLite,总体感觉Android的数据库服务还算方便,这都是两个类的功劳:SQLiteOpenHelper和SQLiteDatabase。关于这两个类,后续再讲。
一、环境
IDE:Android Studio
JDK:1.8
系统:win 7 64位
二、设计
我拿了一个简单的例子:people表字段如下
2.1)首先我写了一个people类:peopleBean。为什么要新建一个类呢?首先是对需要传递和保存的信息进行封装,这样个人觉得更加符合面向对象的思想,也使得代码更规范,可读性更高,安全性更高。
2.2)新建一个对数据库进行操作的类:AddressDAO,该类继承自SQLiteOpenHelper类,关于SQLiteOpenHelper类的说明将在另一个章节中讨论。
其中关键的几个地方:
(1)重写onCreate()函数,功能:新建数据库,库名:address_db
(2)重写onUpdate()函数,数据库升级时,Android系统会自动调用该方法
(3)查询的时候,调用的是rawQuery()方法,返回的是Cursor对象,该对象是一个数据集合,关于Cursor的操作,后续再讲。
其他的删除和查询暂时还没写。
当然还可以通过调用SQLiteDatabase类中的insert()、delete()、update()、rawQuery()进行数据的增删改查,但是个人喜欢通过执行sql语句来做,比较方便。
三、关于SQLite可视化
系统中的数据库在哪里呢?见下图:
打开android device monitor
将数据库表导入和导出:
然后就可以利用SQLite可视化工具查看了:SQLite Expert
Email:chentravelling@163.com
前天学习了一下界面布局和activity,昨天抽了一会时间捣腾了一下SQLite,总体感觉Android的数据库服务还算方便,这都是两个类的功劳:SQLiteOpenHelper和SQLiteDatabase。关于这两个类,后续再讲。
一、环境
IDE:Android Studio
JDK:1.8
系统:win 7 64位
二、设计
我拿了一个简单的例子:people表字段如下
字段 | 类型 | 主键 |
id | TEXT | KEY |
name | TEXT | |
workplace | TEXT | |
phone | TEXT | |
gender | INTEGER |
/** * Created by chen on 2015/12/16. */ public class peopleBean { private String id;//主键 private String name; private String workplace; private String phone; private int gender; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getWorkplace() { return workplace; } public void setWorkplace(String workplace) { this.workplace = workplace; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public int getGender() { return gender; } public void setGender(int gender) { this.gender = gender; } } </span>
2.2)新建一个对数据库进行操作的类:AddressDAO,该类继承自SQLiteOpenHelper类,关于SQLiteOpenHelper类的说明将在另一个章节中讨论。
<pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:18px;"> import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; /** * Created by chen on 2015/12/16. */ public class AddressDAO extends SQLiteOpenHelper{ private SQLiteDatabase db; public AddressDAO(Context context) { super(context,"address_db",null,1); } //创建数据库 @Override public void onCreate(SQLiteDatabase db) { Log.e("onCreate", "create"); String sql = "CREATE TABLE IF NOT EXISTS people(id integer primary key autoincrement,name text,phone text,workplace text,gender integer);"; db.execSQL(sql); } //当数据库升级的时候,Android系统会自动调用onUpgrade方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS address_db"; db.execSQL(sql); onCreate(db); } //关闭数据库服务 public void closeDB(SQLiteDatabase db) { if(db!=null) { db.close(); } } //插入数据 public void add(peopleBean people) { /* String name = people.getName(); String phone = people.getPhone(); String workplace = people.getWorkplace(); String gender = people.getGender()==0?"男":"女";*/ String sql = "insert into people values(null,'"+people.getName()+"','"+people.getPhone()+"','"+people.getWorkplace()+"','"+people.getGender()+"')"; //String sql = "insert into people values(null,'张亚茹','13716762131','北京','0');"; //获取SQLiteDatabase对象实例 db = this.getWritableDatabase(); db.execSQL(sql); } //查询数据:返回的是一个Cursor对象 public Cursor query() { String sql = "select * from people"; //获取SQLiteDatabase对象实例 db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(sql, null); return cursor; } } </span>
其中关键的几个地方:
(1)重写onCreate()函数,功能:新建数据库,库名:address_db
(2)重写onUpdate()函数,数据库升级时,Android系统会自动调用该方法
(3)查询的时候,调用的是rawQuery()方法,返回的是Cursor对象,该对象是一个数据集合,关于Cursor的操作,后续再讲。
其他的删除和查询暂时还没写。
当然还可以通过调用SQLiteDatabase类中的insert()、delete()、update()、rawQuery()进行数据的增删改查,但是个人喜欢通过执行sql语句来做,比较方便。
三、关于SQLite可视化
系统中的数据库在哪里呢?见下图:
打开android device monitor
将数据库表导入和导出:
然后就可以利用SQLite可视化工具查看了:SQLite Expert
相关文章推荐
- Android框架 -- GreenDao
- Android帧动画Drawable Animation
- 使用GDB调试Android应用中C/C++代码
- 使用GDB调试Android应用中C/C++代码
- Android5.0以后版本把应用移动到SD或者TF卡的方法
- Android Studio 好用的插件,这些基本是测试过好用的,或者我想用的~
- Android Bitmap OutOfMemory 解决的方法
- Android的图片压缩类ThumbnailUtils
- Android-->RxJava/RxAndroid 入门初体验
- Android进阶:PopupWindow详解
- android_rpg 天龙群侠传
- Android捕获异常处理——UncaughtExceptionHandler
- Android zxing 解析二维码,生成二维码极简demo
- Intent详细介绍及使用实例
- android propertyAnimator--()
- zhu的工作日记:handler消息处理机制浅解(android)
- Android中的asset文件夹和raw文件夹区别
- Android笔记(3)---Intent之间的传值
- Android 自定义ViewPager设置屏蔽左右滑动事件
- 如何锁定Android系统CPU的频率