安卓SQLite数据库操作(上)
安卓系统自带数据库,名为SQLite。这篇文章我们用一个Demo来讲解安卓操作数据库的例子。
By the way,
安卓创建的数据库文件存放在/data/data/<包名>/database 下,后缀名一般为xxx.db
看到数据库文件,我们一般使用一款名为 SQLite Expert 的可视化工具来查看。
下面我们通过一个简单的例子来,创建一个数据,数据库里面创建一个表格。
注意,虽然我们在安卓开发中有包装好的api可以使用,但是sql语句我们最好还是掌握比较好。
先看图吧。
如图所示,下面是用 SQLite Expert打开后的界面,运行app后,点击按钮就会创建一个名为people的数据库,数据库下有一个Girl的表。(如果没有创建表,数据下面也有一个表,那个是系统自动生成的表,但我们不用理会。)


然后看代码
布局文件 activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.db.MainActivity" > <Button
android:onClick="Create_Datebase"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create Datebase" /> </LinearLayout>
java文件
MainActivity.java
package com.example.db; import android.app.Activity;
import android.os.Bundle;
import android.view.View; public class MainActivity extends Activity { private mySQLite myDatebaseHelper; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); myDatebaseHelper = new mySQLite(this, "people.db", null, 1); } public void Create_Datebase(View v){ /*
* 如果数据库没有被创建,就创建并获取一个可写(其实也可以读)的数据库 如果数据库被创建,就直接获取一个可写(其实也可以读)的数据库
* 路径data/data/database/people.db
*/
myDatebaseHelper.getWritableDatabase(); } }
mySQLite.java
package com.example.db; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast; //创建SQLLite需要继承SQLiteOpenHelper类抽象类
public class mySQLite extends SQLiteOpenHelper{ public static final String CREATE_GIRL = "create table Gril(_id integer primary key autoincrement,Name char(20),Age integer,Phone char(20))" ;
private Context mContext; /*
* 构造方法参数说明
* 第一个:传入上下文对象
* 第二个:要创建的数据库名字
* 第三个:油标工厂,传入油标对象,其实就是一个指针的功能。和ResultSet功能差不多,这个参数一般传入null
* 第四个:数据库版本号,用于升级的时候调用。版本号必须大于1
* 构造方法四个参数传入其实是给父类调用的。
* */
public mySQLite(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
mContext = context;
} //数据库被创建的时候会调用这个方法
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
/*db.execSQL(CREATE_BOOK);
Toast.makeText(mContext,"Create Successded",0).show();*/
db.execSQL(CREATE_GIRL);
Toast.makeText(mContext,"Create Successded",0).show();
}
//数据库升级的时候调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub } }
安卓SQLite数据库操作(上)的更多相关文章
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货
本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处 ...
- 安卓SQLite数据库操作(下)
在安卓开发中,数据库的操作无非就是增删改查.那么,这里我们通过例子来学习这四个操作. 我们先看代码吧.具体讲解后面说. 布局文件 activity_main.xml <LinearLayout ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- 实验八 sqlite数据库操作
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年5月3日 实验项目名称 SQLite数据库操作 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 ...
- windows phone 8.1开发SQlite数据库操作详解
原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...
- Python学习笔记:sqlite3(sqlite数据库操作)
对于数据库的操作,Python中可以通过下载一些对应的三方插件和对应的数据库来实现数据库的操作,但是这样不免使得Python程序变得更加复杂了.如果只是想要使用数据库,又不想下载一些不必要的插件和辅助 ...
随机推荐
- review37
线程的常用方法 1.start() 线程调用该方法将启动线程,使之从新建状态进入就绪队列排队. 2.run() 3.sleep() 4.isAlive() 线程处于新建状态时,线程调用isAlive( ...
- svn更新时忽略指定文件或文件夹
选择一个收SVN控制的文件夹->右击->选择TortoiseSVN->更新至版本,就会出现 选择更新深度为工作副本,再选择项目,出现如图中所示的界面,把不想更新的文件或者文件夹前 ...
- PHP的目录路径问题
在windows下,可以用“/”或者“\”来表示目录层次,而linux下只能用“/”:同时在linux下没有盘符的概念,只有用“/”符号表示唯一的根目录.所以,用一个变量表示目录位置的话,用“/”最安 ...
- hdu4217splay
题意:有1到n的数组,每次删除第k小的值,并求和 题解:splay基本操作,删除+合并 坑点:由于不会c++指针操作,sb的只删除了头指针导致一直mle #include<bits/stdc++ ...
- uva10910 背包
https://vjudge.net/problem/UVA-10910 给出N,T,P,表示N门考试考了T分,问有多少种不同的得分方案,已知每门课的得分不低于P. 令f[i][j]表示考了i门得了j ...
- SQL Sever删除外键
declare @sql varchar(max), @tab_name varchar(128), @fk_name varchar(128);declare c cursor forselect ...
- python编程实例-使用正则收集IP信息
#!/usr/bin/env python from subprocess import PIPE,Popen import re def getIfconfig(): p = Popen(['ifc ...
- 剑指offer--12.不用加减乘除做加法
位运算,好久没用了 &:都为1,结果为1 ^:相同为0,不同为1 |:有1,结果为1 <<:左移 ----------------------------------------- ...
- pcre函数详解
PCRE是一个NFA正则引擎,不然不能提供完全与Perl一致的正则语法功能.但它同时也实现了DFA,只是满足数学意义上的正则. PCRE提供了19个接口函数,为了简单介绍,使用PCRE内带的测试程序( ...
- Spring MVC配置文件的三个常用配置详解
转自:http://www.cnblogs.com/benwu/articles/5162614.html Spring MVC项目中通常会有二个配置文件,sprng-servlet.xml和appl ...