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 ...
随机推荐
- MySQL 常用show命令
MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- docker学习3-虚拟网络模式
一.虚拟机网络模式 在理解docker网络隔离前,先看下之前虚拟机里对网络的处理,VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-onl ...
- javascript 遍历object对象
(function(){ var str = ''; for(var i in obj){ //遍历object str += '\n'+(i+' : '+obj[i]); // i+' : '+ob ...
- 怎么用CorelDRAW插入、删除与重命名页面
在绘图之前,页面的各种设置也是一项重要的工作,本文主要讲解如何在CorelDRAW中插入.删除.重命名页面等操作.在CorelDRAW的绘图工作中,常常需要在同一文档中添加多个空白页面,删除一些无用的 ...
- OpenJudge计算概论-四大湖
/*====================================================================== 四大湖 总时间限制: 1000ms 内存限制: 655 ...
- mysql性能的检查和调优方法
mysql性能的检查和调优方法 发布时间:2009 年 10 月 4 日 发布者: OurMySQL 来源:sudone.com 才被阅读:3,524 次 才1条评论 我一直是使用my ...
- 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?
学习转摘:https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8rman_debug%E5%92 ...
- 【java】 java 实现mysql备份
使用java实现mysql的备份: public class MySQLBackUp { /** * Java代码实现MySQL数据库导出 * * @author GaoHuanjie * @para ...
- JQUERY 拖拽 draggable droppable resizable selectable sortable
今天用了jq ui的拖动碰撞功能,好不容易看到有详细的API解说,记录如下: <script language="JavaScript" type="text/ ...
- 【转】linux-系统启动流程详解
第二十章.启动流程.模块管理与 Loader 最近升级日期:2009/09/14 1. Linux 的启动流程分析 1.1 启动流程一览 1.2 BIOS, boot loader 与 kernel ...