Android学习笔记(SQLite的简单使用)
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的简单使用)的更多相关文章
- Android学习笔记--Sqlite数据库
前几天学习了Android中的数据存储,包括文件存储,SharedPreferences存储,还有就是Acndroid中的特色:SQLite数据库存储了.让我比较惊讶的是Android中竟然内嵌了一个 ...
- Android学习笔记——SQLite
该工程的功能是实现关于数据库的操作,即creat.update.insert.query.delete 调试的时候请用模拟器,用真机调试的时候进入cmd-adb shell,再进入cd data/da ...
- (转)Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解
原文:http://blog.csdn.net/lidew521/article/details/8655229 1.SQLite介绍:最大特点是,无数据类型;除了可以使用文件或SharedPrefe ...
- Android学习笔记:ListView简单应用--显示文字列表
在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例 ...
- Android学习笔记_46_fragment的简单应用
Fragments 诞生初衷 http://www.cnblogs.com/TerryBlog/archive/2012/02/17/2355753.html 自从Android 3.0中引入frag ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode
目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...
- udacity android 学习笔记: lesson 4 part a
udacity android 学习笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
学习内容: 1.使用Volley实现异步加载Json数据... Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
随机推荐
- django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)
上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...
- Ubuntu---2
1.Ubuntu学习笔记之:安装中文语言包 http://askubuntu.com/questions/59356/how-do-i-get-chinese-input-to-work
- 为 Joomla 而生的 Kunena 论坛安装手册
查看并下载最新版本Kunena论坛,或直接下载Kunena1.7.2.如果你打算在Joomla网站中安装一个论坛,可以考虑一下Kunena论坛组件,一个为Joomla而生的免费的开源论坛组件. 安装: ...
- android开发环境与工具使用相关备忘录
一.名称简介 1.ADT(Android Development Tools) 可以简单理解为在eclipse下开发安卓的插件或工具包. 查看当前ADT版本方法:help-> about ecl ...
- Kernel compiling for Pi 2
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=101188&p=807579&hilit=cross+comp ...
- xom报错 Exception in thread "main" java.net.UnknownHostException: file
Exception in thread "main" java.net.UnknownHostException: file at java.net.AbstractPlainSo ...
- AndroidHttp通信 HTTP Client与HttpURLConnection的区别
Apache HTTP Client DefaultHttpClient 以及其相关类AndroidHttpClient 适用于 web browsers, 他们是可扩展的,并且拥有大量的稳定APIs ...
- 使用GruntJS链接与压缩多个JavaScript文件
使用GruntJS链接与压缩多个JavaScript文件 自己写了个简单的HTML5 Canvas的图表库,可以支持饼图,折线图,散点图,盒子图 柱状图,同时支持鼠标提示,绘制过程动画效果等.最终我想 ...
- 大文件遍历shell脚本
要求说明: 一.普通方法 无读写磁盘优化 有写磁盘优化 有读写磁盘优化 问题:脚本执行越来越慢 top ps aux vmstat 查看系统运行情况正常. 二.AWK 三.perl
- Js- 菜单
很简单的JS二级菜单显示,收藏 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...