Android之SQLite
在模拟器运行的情况下,进入cmd运行adb shell 可进入模拟器的linux系统
输入 lite3 mars_test_db 可进入sqlite模式
.schema或者.sch 查看有哪些表
SQLite帮助类
package com.example.mars_1400_sqlite01; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper; //DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能
//第一:getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作
//第二:提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作
public class DatabaseHelper extends SQLiteOpenHelper { private static final int VERSION = 1;
//在SQLiteOpenHelper子类中,必须有该构造函数
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
// 必须通过super调用父类当中的构造函数
super(context, name, factory, version);
} public DatabaseHelper(Context context, String name) {
this(context, name, VERSION);
} public DatabaseHelper(Context context, String name, int version) {
this(context, name, null, version);
} //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabase对象的时候
@Override
public void onCreate(SQLiteDatabase db) {
System.out.println("create a Database");
//execSQL函数用于执行sql语句
db.execSQL("create table user(id int,name varchar(20))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//当数据库的版本更新时执行
System.out.println("update a Database");
} }
SQLite增删改查
public class MainActivity extends Activity {
private Button createDatabase = null;
private Button updateDatabase = null;
private Button insert = null;
private Button update = null;
private Button query = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); createDatabase = (Button) findViewById(R.id.createDatabase);
updateDatabase = (Button) findViewById(R.id.updateDatabase);
insert = (Button) findViewById(R.id.insert);
update = (Button) findViewById(R.id.update);
query = (Button) findViewById(R.id.query); createDatabase.setOnClickListener(new CreateListener());
updateDatabase.setOnClickListener(new UpdateListener());
insert.setOnClickListener(new InsertListener());
update.setOnClickListener(new UpdateRecordListener());
query.setOnClickListener(new QueryListener()); /*
* if (savedInstanceState == null) {
* getSupportFragmentManager().beginTransaction() .add(R.id.container,
* new PlaceholderFragment()).commit(); }
*/
} class CreateListener implements OnClickListener {
@Override
public void onClick(View v) {
// 创建一个DatabaseHelper对象
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"mars_test_db");
// 只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之一
// 才会创建数据库
SQLiteDatabase db = dbHelper.getReadableDatabase();
}
} class UpdateListener implements OnClickListener {
@Override
public void onClick(View v) {
// 更新数据库的版本
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"mars_test_db", 2);
SQLiteDatabase db = dbHelper.getReadableDatabase();
}
} // 更新操作就相当于执行SQL语句当中的update语句
// update table_name set xxcol=xx where xxclo=xx...
class InsertListener implements OnClickListener {
@Override
public void onClick(View v) {
System.out.println("insert data");
// 生成ContentValues对象
ContentValues values = new ContentValues();
// 想该对象当中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据类型匹配
values.put("id", 2);
values.put("name", "zhangsan");
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"mars_test_db");
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 调用insert方法,就可以将数据插入到数据库当中
db.insert("user", null, values);
}
} class UpdateRecordListener implements OnClickListener {
@Override
public void onClick(View v) {
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"mars_test_db");
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "wzh");
db.update("user", values, "id=?", new String[] { "1" });
}
} class QueryListener implements OnClickListener {
@Override
public void onClick(View v) {
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"mars_test_db");
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"));
System.out.println("query--->" + name);
}
}
}
Android之SQLite的更多相关文章
- Android之SQLite数据存储
一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- Android中SQLite数据库小计
2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
- Android学习---SQLite数据库的增删改查和事务(transaction)调用
上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...
- android数据库SQLite的设计模式
Dao设计模式可能是使用最多的数据库的设计模式其基本思路是将数据库操作的代码 与设计代码分离以便于维护和升级.具体的实现方法是使用包,然后在设计代码中调 用数据库的操作代码,dao设计模式需要创建5个 ...
- Android使用SQLite数据库(2)
打开SQLite数据库,首先要建立一个DatabaseHelper类的实例,然后,再获得数据库: DatabaseHelper mDBH; SQLiteDatabase db; mDBH = new ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- Android和SQLite版本对应关系
Android和SQLite版本对应关系 今天Xamarin群有人问到Android和SQLite版本如何对应,顺手查了一下,贴出来. SQLite 3.8.4.3: • 21-5.0-Lollipo ...
- Android中SQLite应用详解
上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite. 现在的主流移动设备像Android.i ...
随机推荐
- Linux comands
https://www.mankier.com/8/vmstat http://docs.oracle.com/cd/E23824_01/html/821-1451/spmonitor-22.html ...
- MapReduce: 一个巨大的倒退
前言 databasecolumn 的数据库大牛们(其中包括PostgreSQL的最初伯克利领导:Michael Stonebraker)最近写了一篇评论当前如日中天的MapReduce 技术的文章, ...
- 20150906VS小知识
.sln :解决方案管理文件.caproj:项目管理文件.cs:程序源代码文件项目文件目录下有个bin文件夹,里面的debug文件夹,里面存放生成后的程序. //注释一行/* */ 注释一段 alt ...
- T 恤
https://detail.tmall.com/item.htm?spm=a220o.1000855.1998025129.1.A6Zaol&id=528088614049&pvid ...
- 关于c语言char类型输入输出的一个bug
题目 输入一个整数n,接下来n行每一行输入两个用一个空格分隔的字符. 对每一对字符,比较其大小关系并输出比较的结果:1.0.-1. 解决的代码如下: #include<stdio.h> i ...
- webpack需要全局安装,才能使用webpack命令
webpack全局安装,具体项目中才能使用webpack命令: npm install webpack -g
- jQuery Mobile_表单元素
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- oracle中where 子句和having子句中的区别
1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数 ...
- 如何修改Oracle字符集
一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库 ...
- SIlverlight外包公司【技术展望】— Silverlight5.1.2最新版本发布,Silverlight 的更新从未停止。
微软发布新版Silverlight 5, 版本号5.1.20913.0 大家可以到微软网站去下载最新版本网址是 http://www.microsoft.com/getsilverlight/get- ...