Android 数据库Sqlite的使用(1)
在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)相关推荐
- 《一》Android 数据库 SQlite SQLiteOpenHelper
/* 大家都知道写博客会很累的,大热天的. 希望=转载请注明出处:http://blog.csdn.net/ta893115871 请不要可怜你的鼠标,(*^__^*) 嘻嘻-- */ 众所周知,数据 ...
- Android数据库—SQLite
目录 Android数据库-SQLite 在线查看数据库方法 继承SQLiteOpenHelper的类,加载驱动 在Activity中进行增删改查 增加数据 删除数据 修改数据 查询数据 在界面上进行 ...
- Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练-绿豆通讯录)】
目 录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...
- Android 数据库 SQLite
首先关于SQLite的介绍百度上看看就大致了解的差不多了. Android 操作数据库的关键步骤就在于实现API SQLiteOpenHelper,通常这个库辅助类来创建或打开数据库. 废话不多说直接 ...
- 《二》Android 数据库 SQlite SQLiteOpenHelper
/**************************************************** 大家都知道写博客会很累的,大热天的. 希望=转载请注明出处:http://blog.csdn ...
- android绿豆通讯录xml,Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】...
目 录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...
- android realm 简书,android 数据库SQLite realm
一.SQLite android内置了数据库SQLite,这是一款轻量级的关系型数据库,通常只需要几百K的内存.数据库文件存放在/data/data//databases/目录下. 为了方便管理数据库 ...
- android 数据库sqlite的使用
android开发的过程中,不可避免的有需要存储数据的时候. android的数据存取机制有很多,其中最重要的大概就是sqlite数据库了 sqlite 数据库是android自带的数据库.不需要任何 ...
- 一篇好文之Android数据库 SQLite全解析
项目效果地址: SQlite 1. 创建数据库 Android中使用SQlite,需要自己创建库,建表,添加数据!好在Android中提供了SQLiteOpenHelper类来帮助创建使用数据库,我们 ...
最新文章
- Win32多线程编程(2) — 线程控制
- 从工程转向管理,访谈Github公司的Phil Haack
- poj 2191 Mersenne Composite Numbers
- java linkedhashset_java之LinkedHashSet
- linux 查看目录下文件个数
- mysql查其它用户的表_mysql sql查询如何实现发私信用户和其他用户的列表?要求消重所有重复的用户结果...
- 深度学习工作笔记002---曼哈顿距离_欧氏距离
- memcached在大负载高并发网站上的应用(一)
- Alibaba Canal
- Android 软键盘盖住输入框的问题
- JS获取鼠标的坐标和滚动条的位置
- Excel比较两列的值
- python小练习之货币转换
- 山西民生云大同员认证在什么网_山西民生云app下载-山西民生云大同app认证下载手机版 v2.2-91优手机网...
- 输入远程计算机地址后,不提示输入用户名密码直接进入计算机怎么回事,解决Windows远程桌面连接每次都提示输入密码的问题...
- 经典WinCC如何移植到TIA博途WinCC Professional?
- H5 实现电子签名功能-VUE--12301合同签署类似功能
- 利用CSS实现渐变色边框
- 【Docker】Docker镜像是什么?浅谈对Docker镜像的理解
- 小程序的支付的完整代码(php)
热门文章
- GEAP 遗传算法/遗传编程 genetic programming + python(deap库)实现
- 基于TextRank的抽取式文本摘要(英文)
- 使用go语言提取ins视频地址和图片地址
- python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据
- html美食网站源码
- C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?
- C++人工智能相关书籍
- NLP-文本向量化:Word Embedding 一般步骤【字符串->分词->词汇序列化->词汇向量化】
- Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B
- 复旦MBA第二学位:畅享顶尖国际商科资源,探索全球发展新可能