在Android中,我们使用的数据库是一个轻量级的数据库 sqlite 下面我们来学习一下它的CURD操作

首先 我们需要创建一个类 继承自android自带的一个数据库帮助类SQLiteOpenHelper 类名可以自己定义

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;import sqlite.android_sqlite.Constant;public class MysqliteHelper extends SQLiteOpenHelper {public static final String TAG=MysqliteHelper.class.getName();public static final String DATABASE_NAME="userinfo";public static final int DATABASE_VERSION=1;/*** 构造函数* @param context 上下文* @param name 数据库名* @param factory 游标工厂* @param version 数据库版本 必须大于或等于1*/public MysqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}/*** 构造函数* @param context*/public MysqliteHelper(Context context){/*第三个参数我们现在可以默认为空*/super(context,DATABASE_NAME,null,DATABASE_VERSION);}/*** 创建数据库* @param db 数据库对象*/@Overridepublic void onCreate(SQLiteDatabase db) {Log.e(TAG,"-------->onCreate");String sql = "create table person(name varchar(20),age Integer)"db.execSQL(sql);}/*** 版本升级* @param db 数据库对象* @param oldVersion 旧版本* @param newVersion 新版本*/@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.e(TAG,"-------->onUpgrade");}/*** 打开数据库* @param db*/@Overridepublic void onOpen(SQLiteDatabase db) {super.onOpen(db);Log.e(TAG,"-------->onOpen");}
}

创建完成后我们重写父类方法 这里我们可以发现 有两个构造方法 第二个构造方法是我们自己创建的 目的是方便创建实例 我们在新建实例时只需要传入上下文即可 其他参数我可以事先定义好。 在oncreat方法中 代码用于创建数据表 person 这里我们只写两个字段 方便以后练习使用

现在我们已经创建好了数据库类 接下来我们打开布局文件 写入一个按钮控件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:onClick="createDB"android:id="@+id/createdb"android:text="创建或打开数据库"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout >

接下来。我们再创建一个DBManger的类 用于构建数据库

public class DBManger {public static MysqliteHelper helper;/*** 将 MysqliteHelper 类构建为一个单例的形式 只允许拥有一个实例* @param context 上下文* @return 数据库对象*/public static MysqliteHelper getMmysqliteHelper(Context context){if(helper==null){helper = new MysqliteHelper(context);}return helper;}
}

我们这么做的原因是因为 在正常情况下数据类应该只能有一个实例 所有我们利用这种方法来判断当前数据库是否为空 诺为空表示还没有创建  ,那么我们便创建它,然后返回该对象

现在我们在Activity中创建一个createDB的方法  并先声明好MysqliteHelper 与SQLiteDatabase ,然后调用DBManger类中的静态方法获取实例

public class MainActivity extends AppCompatActivity {private MysqliteHelper helper;private SQLiteDatabase db = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);helper = DBManger.getMmysqliteHelper(this);}public void createDB(View view){/*** getReadableDatabase* getWritableDatabase* 这两个方法的作用是创建或打开数据库 如果数据库存在 则打开 否则的话就* 创建后再打开* 事实上 默认情况下 这两个方法打开的都是可读可写数据库 是没有区别的 只是* 当我们磁盘已满或者权限问题等特殊情况时它们才会区分开来 如下* getReadableDatabase是只打开可读数据库 getWritableDatabase只打开可写数据库*/db = helper.getWritableDatabase();Toast.makeText(this,"创建或打开成功",Toast.LENGTH_SHORT).show();}
}

这里我们需要注意的是 在获取数据库对象时,他会默认有两个方法可供我们使用 分别是 getReadableDatabase与getWritableDatabase 这两种方法的区别我已经写在注释里了 好了。到这里我们以及创建好了一个数据库

点击按钮后便会创建userinfo数据库,我们可以在如下路径中找到该数据库  以我华为手机为例 当我们点击按钮创建数据库后可以在 data-->data-->应用包名(例如 com.sql.tdy)-->database 目录下找到

下一篇文章中我们将介绍数据库的修改 插入 以及删除的使用

https://blog.csdn.net/tdl081071tdy/article/details/88377515    ( Android 数据库Sqlite的使用(2))

Android 数据库Sqlite的使用(1)相关推荐

  1. 《一》Android 数据库 SQlite SQLiteOpenHelper

    /* 大家都知道写博客会很累的,大热天的. 希望=转载请注明出处:http://blog.csdn.net/ta893115871 请不要可怜你的鼠标,(*^__^*) 嘻嘻-- */ 众所周知,数据 ...

  2. Android数据库—SQLite

    目录 Android数据库-SQLite 在线查看数据库方法 继承SQLiteOpenHelper的类,加载驱动 在Activity中进行增删改查 增加数据 删除数据 修改数据 查询数据 在界面上进行 ...

  3. Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练-绿豆通讯录)】

    目   录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...

  4. Android 数据库 SQLite

    首先关于SQLite的介绍百度上看看就大致了解的差不多了. Android 操作数据库的关键步骤就在于实现API SQLiteOpenHelper,通常这个库辅助类来创建或打开数据库. 废话不多说直接 ...

  5. 《二》Android 数据库 SQlite SQLiteOpenHelper

    /**************************************************** 大家都知道写博客会很累的,大热天的. 希望=转载请注明出处:http://blog.csdn ...

  6. android绿豆通讯录xml,Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】...

    目   录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...

  7. android realm 简书,android 数据库SQLite realm

    一.SQLite android内置了数据库SQLite,这是一款轻量级的关系型数据库,通常只需要几百K的内存.数据库文件存放在/data/data//databases/目录下. 为了方便管理数据库 ...

  8. android 数据库sqlite的使用

    android开发的过程中,不可避免的有需要存储数据的时候. android的数据存取机制有很多,其中最重要的大概就是sqlite数据库了 sqlite 数据库是android自带的数据库.不需要任何 ...

  9. 一篇好文之Android数据库 SQLite全解析

    项目效果地址: SQlite 1. 创建数据库 Android中使用SQlite,需要自己创建库,建表,添加数据!好在Android中提供了SQLiteOpenHelper类来帮助创建使用数据库,我们 ...

最新文章

  1. Win32多线程编程(2) — 线程控制
  2. 从工程转向管理,访谈Github公司的Phil Haack
  3. poj 2191 Mersenne Composite Numbers
  4. java linkedhashset_java之LinkedHashSet
  5. linux 查看目录下文件个数
  6. mysql查其它用户的表_mysql sql查询如何实现发私信用户和其他用户的列表?要求消重所有重复的用户结果...
  7. 深度学习工作笔记002---曼哈顿距离_欧氏距离
  8. memcached在大负载高并发网站上的应用(一)
  9. Alibaba Canal
  10. Android 软键盘盖住输入框的问题
  11. JS获取鼠标的坐标和滚动条的位置
  12. Excel比较两列的值
  13. python小练习之货币转换
  14. 山西民生云大同员认证在什么网_山西民生云app下载-山西民生云大同app认证下载手机版 v2.2-91优手机网...
  15. 输入远程计算机地址后,不提示输入用户名密码直接进入计算机怎么回事,解决Windows远程桌面连接每次都提示输入密码的问题...
  16. 经典WinCC如何移植到TIA博途WinCC Professional?
  17. H5 实现电子签名功能-VUE--12301合同签署类似功能
  18. 利用CSS实现渐变色边框
  19. 【Docker】Docker镜像是什么?浅谈对Docker镜像的理解
  20. 小程序的支付的完整代码(php)

热门文章

  1. GEAP 遗传算法/遗传编程 genetic programming + python(deap库)实现
  2. 基于TextRank的抽取式文本摘要(英文)
  3. 使用go语言提取ins视频地址和图片地址
  4. python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据
  5. html美食网站源码
  6. C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?
  7. C++人工智能相关书籍
  8. NLP-文本向量化:Word Embedding 一般步骤【字符串->分词->词汇序列化->词汇向量化】
  9. Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B
  10. 复旦MBA第二学位:畅享顶尖国际商科资源,探索全球发展新可能