Android使用SQLite数据库的简单实例

发布时间:2018-11-16  栏目:sqlite  评论:0 Comments

先打个图,了解下Android下数据库操作的简易流程:

  转载整理为:http://my.csdn.net/lmj623565791

图片 1

  我刚开头接触Android的当儿还是还不敢相信,Android系统还是放开了数据库的!好吧,是本人无比孤陋寡闻了。由于自身前是起Web方向改变过来的,对数据库方面的艺也是特意有偏好,当了解这无异于消息随后确实颇为惊喜。Android中放置的数据库是SQLite,而自事先举行Web开发时最常用的数据库是MySQL,经过对比后我发现就片独数据库极为一般,都支持标准的SQL语法,还按照了数据库的ACID事务,所以只要您先用了其他的涉及项目数据库,就可迅速地上手SQLite。

1.首先,写一个要好之数据库操作帮助类似,这个类似继承自Android自带的SQLiteOpenHelper.

  本篇我以引导新童鞋通过dos窗口实现对sqlite数据库的查询、修改、删除、增加操作,下面我们尽管开本篇的牵线。

2.每当温馨之DAO层借助自己之Helper写数据库操作的组成部分智

  SQL(Structured Query
Language)是一样种植标准的数据库查询语言,即所有的关系项目数据库都见面支持她,只不过每种数据库对SQL语言的支持和正式有在微薄之不比。我们决不关心其他数据库对SQL语言的支持情况,这里我们若将重大放在SQLite上就是可以了。下面我用采用模拟器来对SQLite支持的各种指令进行现身说法,如果您想就此手机的语也可以,但如果保您的无绳电话机已经Root,并且包含sqlite3这个命令文件。

3.Activity调用DAO层的数据库操作方法进行操作

  首先保证模拟器已经连续达了计算机,然后在指令执行输入adb
shell进入控制台,如下图所示:

脚例子是:

  图片 2

1.Helper

  注意#号表示我们目前曾是顶尖用户了,如果显示的凡$符号,表示目前只是普通用户而已,这时还待输入su命令切换一下用户位置才行。

复制代码 代码如下:

  有矣极品用户权限之后,我们能够开的工作就过剩了,这里我们事先查看转系统自带的牵连人表吧。进入到/data/data目录下,如下图所示:

package cn.learn.db.util;

  图片 3

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

  所有应用程序的本地存储文件还是存于是目录下面的。为了要让不同应用程序之间的数码好区别开来,Android大凡使应用程序包名进行分离管理,也就是说每个应用程序的本土存储文件都见面存放于好应用程序包名的雅目录下,这里我们ls一下瞧发生多少子目录:

public class DBHelper extends SQLiteOpenHelper {

  图片 4

 private final static String DB_NAME =”test.db”;//数据库名
 private final static int VERSION = 1;//版本号

  OK,确实有不少,毕竟手机上享有的应用程序都以此间。其中,com.android.providers.contacts中存放的哪怕是沟通人的系数据,我们登及者目录再ls一下:

 //自带的构造方法
 public DBHelper(Context context, String name, CursorFactory factory,
   int version) {
  super(context, name, factory, version);
 }

  图片 5

 //为了每次构造时不用传入dbName和版本号,自己得新定义一个构造方法
 public DBHelper(Context cxt){
  this(cxt, DB_NAME, null, VERSION);//调用者的构造方法
 }

  接着进入到databases目录中,再ls:

 //版本变更时
 public DBHelper(Context cxt,int version) {
  this(cxt,DB_NAME,null,version);
 }

  图片 6

 //当数据库创建的当儿调用
 public void onCreate(SQLiteDatabase db) {
  String sql = “create table student(” +
      “id integer primary key autoincrement,” +
      “name varchar(20),” +
      “age int)”;

  其中后缀名为journal的文书是日记文件,我们绝不管,contacts2.db同profile.db才是确实的数据库文件,可以以sqlite3指令来开辟数据库,如下图所示:

  db.execSQL(sql);
 }

  图片 7

 //版本更新时调用
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
  String sql  = “update student ….”;//自己的Update操作
  db.execSQL(sql);
 }

  好之,数据库已经开辟了,那么我们怎么才会清楚当前数据库被出怎么样表也?很粗略,.table命令就得就了:

}

  图片 8

2.写DAO层

  哇,竟然发出如此多张表!是的,联系人之数据结构非常复杂,很多之多寡还是分表存储的。这里我们无论挑一样摆设表,比如说accounts表,如果自身思念明白这张表中发出什么样列应该怎么惩罚也?在MySQL中可采用desc accounts这个命令,但SQLite却不认得是令,毕竟她是来差异化的。SQLite中得用pragma
table_info(TABLE_NAME)这个命令来查看表的数据结构,如下图所示:

复制代码 代码如下:

  图片 9

package cn.learn.db.dao;

  可以看,一共展示了三长达结果,表示accounts表中共有三列。但是,所有的字段都缩在了一条龙里面,并就此“|”符号分隔,这样咱们很麻烦看起每个字段的意义。很粗略,只待更换一种植显示模式就是尽了,比如说line模式就是挺不错的。输入.mode
line命令切换显示模式,然后再运行pragma命令,结果如下图所示:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import cn.learn.db.dao.domain.Student;
import cn.learn.db.util.DBHelper;

  图片 10

public class StudentDao {

  怎么样,这样就是清清楚楚多矣吧?这三排的列名分别是account_name、account_type和data_set,数据类型都是TEXT(字符串),允许吗空,并且还不是主键。好,那我本想查一查accounts申明中的数目为?这虽最为简单了,使用select语句就得了,如下所示:

 DBHelper helper = null;

  图片 11

 public StudentDao(Context cxt) {
  helper = new DBHelper(cxt);
 }

  以上为经Android自带的模拟器进行操作,下面介绍一下争用真机进行调节:

 /**
  *
当Activity中调用此构造方法,传入一个版本号时,系统会以产一致软调动用数据库时调用Helper中之onUpgrade()方法开展更新
  * @param cxt
  * @param version
  */
 public StudentDao(Context cxt, int version) {
  helper = new DBHelper(cxt, version);
 }

  第一步:adb devices 命令:查看时连接的手机;

 // 插入操作
 public void insertData(Student stu) {
  String sql = “insert into student (name,age)values(?,?)”;
  SQLiteDatabase db = helper.getWritableDatabase();
  db.execSQL(sql, new Object[] { stu.name, stu.age });
 }

  图片 12

 // 其它操作

  可以看到手机号出来了,说明自己的手机就连上adb了;

}

  然后:adb shell
 :这个命令是进shell命令界面,可以用所有的linux命令;

成功这些,其它操作就简单了….

  图片 13

另外,数据库文件在这目录

  切到data/data文章夹下:cd data/data

图片 14

  图片 15

君可能感兴趣的篇章:

  • android通过jxl读excel存入sqlite3数据库
  • Android导入现有的数据库方法言传身教
  • android实现raw文件夹导入数据库代码
  • Android应用读取Excel文件的艺术
  • Android操作Excel文件之效用实现
  • android读取assets中Excel表格并出示
  • Android开发实现生成excel的方法详解
  • Android开发实现读取excel数据并保存也xml的办法
  • Android
    SQLite数据库增删改查操作的行使详解
  • Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的章程详解
  • Android开发实现之导出数据库到Excel表格功能【附源码下载】

  使用ls命令显示该公文夹下的有文件试试:

  图片 16

  访问于拒,这是盖从没Root权限,然后我们之所以su命令获取root权限:

  图片 17

  于讹诈下su命令时,手机上会弹来待root权限的允许,取消按钮,如图,(选择允许)

  ok到这边关于怎样通过dos窗口进行sqlite数据库操作的学问介绍完。

留下评论

网站地图xml地图