1.SQLite介绍

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了

2.SQLiteOpenHelper的使用方法

常用方法
    1.getReadableDatabase():得到可读的数据库,返回一个SQLiteDatabase对象,提供一些管理数据库的方法
    2.getWritableDatabase():得到一个可写的数据库,返回一个SQLiteDataba
    3.onCreate(SQLiteDatabase db):创建一个表
    4.onOpen(SQLiteDatabase db):打开数据库
    5.onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion):修改数据库的表结构的方法
    6.close()
    当需要操作数据库的时候,必须先获得一个SQLiteOpenHelper,他是一个抽象类,我们必须写一个类,来继承他,继承之后,我们拥有了getReadableDatabase和getWritableDatabase两个方法,

3.使用adb访问SQLite

进入adb命令行,查询数据库表,和普通的sql语句完全一样(select * from user)

Adb为调试工具,进入命令行 /data/data 当我们创建应用程序的时候,只要应用运行,都会在此目录下生成

当点击创建数据库之后,会生成如下文件夹

进入Databases

链接数据库实例

4.SQLite实现增删改查的Demo

布局代码(线性水平布局,五个按钮)

<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:orientation="vertical"
tools:context="com.example.sqlitedemo.MainActivity" > <Button
android:id="@+id/createBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="创建数据库"/> <Button
android:id="@+id/updateBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更新数据库"/> <Button
android:id="@+id/insertDataBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="插入数据"/> <Button
android:id="@+id/updateDataBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更新数据"/> <Button
android:id="@+id/queryDataBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据"/>
</LinearLayout>

数据库工具类代码

package com.example.sqlitedemo.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper{ private static final int VERSION = 1;
/**
* 在sqliteOpenHelper子类中必须有该构造函数,
* 第一个参数为activity
* 第二个参数:表的名字
* 第三个函数:null
* 第四个参数:数据库的版本
*/ public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
} /**
* 构造函数2
* @param context
* @param name
*/
public DatabaseHelper(Context context, String name) {
// TODO Auto-generated constructor stub
this(context, name, VERSION);
} /**
* 构造函数3
* @param context
* @param name
* @param version
*/
public DatabaseHelper(Context context, String name,int version) {
// TODO Auto-generated constructor stub
this(context, name, null, version);
} /**
* 该函数在第一次创建数据库的时候执行,第一次得到SQLiteDatabase对象的时候,调用次方法
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
System.out.println("创建数据库");
String strCreateSQL = "create table user(id int,name varchar(20))";
db.execSQL(strCreateSQL);
} /**
* 执行更新数据库
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
System.out.println("更新数据库");
} }

数据库操作类代码

package com.example.sqlitedemo;

import com.example.sqlitedemo.db.DatabaseHelper;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity { private Button createBtn;
private Button updateBtn;
private Button insertDataBtn;
private Button updateDataBtn;
private Button queryDataBtn; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createBtn = (Button) findViewById(R.id.createBtn);
updateBtn = (Button) findViewById(R.id.updateBtn);
insertDataBtn = (Button) findViewById(R.id.insertDataBtn);
updateDataBtn = (Button) findViewById(R.id.updateDataBtn);
queryDataBtn = (Button) findViewById(R.id.queryDataBtn); createBtn.setOnClickListener(new createListener());
updateBtn.setOnClickListener(new updateListener());
insertDataBtn.setOnClickListener(new insertDataListener());
updateDataBtn.setOnClickListener(new updateDataListener());
queryDataBtn.setOnClickListener(new queryDataListener());
} class createListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_mzl");
SQLiteDatabase db = dbHelper.getWritableDatabase(); }
} class updateListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//更改数据库实力的版本。默认就会执行onUpgrade方法
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_mzl",2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
} } class insertDataListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//生成一个数据库写入时存放数据的对象,键为列名,值为值
ContentValues values = new ContentValues();
values.put("id", 1);
values.put("name", "mzl"); //更改数据库实力的版本。默认就会执行onUpgrade方法
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_mzl",2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.insert("user", null, values);
Toast.makeText(MainActivity.this, "插入成功", Toast.LENGTH_SHORT).show();
} } class updateDataListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentValues values = new ContentValues();
values.put("name", "mzl修改");
//更改数据库实力的版本。默认就会执行onUpgrade方法
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_mzl",2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.update("user", values, "id=?", new String[]{"1"});
Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show();
} } class queryDataListener implements OnClickListener{ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//更改数据库实力的版本。默认就会执行onUpgrade方法
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "test_mzl",2);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
}
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

Android学习笔记(SQLite的简单使用)的更多相关文章

  1. Android学习笔记--Sqlite数据库

    前几天学习了Android中的数据存储,包括文件存储,SharedPreferences存储,还有就是Acndroid中的特色:SQLite数据库存储了.让我比较惊讶的是Android中竟然内嵌了一个 ...

  2. Android学习笔记——SQLite

    该工程的功能是实现关于数据库的操作,即creat.update.insert.query.delete 调试的时候请用模拟器,用真机调试的时候进入cmd-adb shell,再进入cd data/da ...

  3. (转)Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

    原文:http://blog.csdn.net/lidew521/article/details/8655229 1.SQLite介绍:最大特点是,无数据类型;除了可以使用文件或SharedPrefe ...

  4. Android学习笔记:ListView简单应用--显示文字列表

    在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例 ...

  5. Android学习笔记_46_fragment的简单应用

    Fragments 诞生初衷 http://www.cnblogs.com/TerryBlog/archive/2012/02/17/2355753.html 自从Android 3.0中引入frag ...

  6. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  7. 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode

    目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...

  8. udacity android 学习笔记: lesson 4 part a

    udacity android 学习笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  9. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  10. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

随机推荐

  1. Makefile自动生成头文件依赖

    前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖 ...

  2. ubuntu12.04 mysql服务器乱码问题的解决办法

    网上方法太杂乱,有些甚至很复杂,其实ubuntu下只需要修改一个配置文件即可. sudo vi /etc/mysql/my.cnf 在[client]下加入 default-character-set ...

  3. 《C语言程序设计现代方法》第1章 C语言概述

    C语言的特点:C语言是一种底层语言.C语言是一种小型语言.C语言是一种包容性语言. C语言的优点:高效.可移植.功能强大.灵活.标准库.与UNIX系统集成. C语言的缺点:C程序更容易隐藏错误.C程序 ...

  4. gnome设置dvorak键盘布局

    若桌面环境为gnome,设置Dvorak键盘程序员布局很简单.系统设置 -> 键盘 -> 布局设置 -> 点击"+" ->选择"英语(适合程序员的 ...

  5. 关键字instanceof和final

    Instanceof关键字(类似oc的isKindOfClass 和 isMemberOfClass) instanceof(实例类型) 关键字作用: 1.判断某一个对象是否属于某一个类 2.inst ...

  6. java的主函数中各个词的作用

    主函数 public static void main(String[] args){} public: main主方法是由jvm(虚拟机)来调用,jvm实际也是一程序,为了保证jvm能在任何情况下调 ...

  7. 【bzoj3172】 [Tjoi2013]单词

    题目描述 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. 输入 第一个一个整数N,表示有多少个单词,接下来N行每行一个单词.每个 ...

  8. web 网站安全证书已过期或不可信 是否继续浏览

    发生环境:魅族MX4  uc浏览器 IIS部署SSL证书后提示不可信的解决方案 第一步:打开mmc——点击文件——添加删除管理单元——证书——计算机帐户 第二步:在计算机帐户的个人证书里面导入pfx格 ...

  9. [Oracle] - 性能优化工具(5) - AWRSQL

    在AWR中定位到问题SQL语句后想要了解该SQL statement的详细运行计划,于是就用AWR报告中得到的SQL ID去V$SQL等几个动态性能视图中查询,但发现V$SQL或V$SQL_PLAN视 ...

  10. javascript、jsp

    1.javascript:简称js 在<body>与 </body>之间 加入<script> </script>即可 最好在<head>与 ...