一个简单的例子,当点击按钮时进行相应的操作,效果图如下:

项目代码如下:

DatabaseHelper类

package com.example.sqlitedatebasetest; 

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
*
* @author 作者 程其春
* @version 创建时间:2015-11-3 上午11:32:55
* 类说明
* SQLiteOpenHelper是一个辅助类,用来管理数据库的创建和版本,它提供两个方面的功能
* 第一,getReadableDatebase和getWriteableDatebase 可以获得SQLiteDatebase对象,
* 通过该对象可以对数据库进行操作
* 第二,提供了onCreate(),onUpgrade两个回调函数,允许我们再创建和更新数据库时,可以进行自己的操作
*/
public class DatabaseHelper extends SQLiteOpenHelper{ private static final int VERSION = 1; /**
* 在SQLiteOpenHelper的子类当中,必须有该构造函数
* @param context 上下文对象
* @param name 数据库名称
* @param factory
* @param version 当前数据库的版本,值必须是整数并且是递增的状态
*/
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
} public DatabaseHelper(Context context,String name,int version){
this(context,name,null,version);
} public DatabaseHelper(Context context, String name){
this(context,name,VERSION);
}
/**
* 该函数是在第一次创建的时候执行,实际上是第一次得到SQLitedatebase对象的时候才会调用这个方法。
*/
@Override
public void onCreate(SQLiteDatabase db) {
System.out.println("create a datebase");
//execSQL用于执行SQL语句
db.execSQL("create table user (id int,name verchar(20))");
} @Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
System.out.println("upgrade a database");
} }

MainActivity类

package com.example.sqlitedatebasetest;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.widget.Button; public class MainActivity extends ActionBarActivity implements OnClickListener {
private Button btnCreateDatabase = null;
private Button btnUpdateDatabase = null;
private Button btnInsert = null;
private Button btnUpdate = null;
private Button btnQuery = null;
private Button btnDelete = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 根据控件id获得相应的控件对象
btnCreateDatabase = (Button) this.findViewById(R.id.btn_createDatebase);
btnUpdateDatabase = (Button) this.findViewById(R.id.btn_updateDatebase);
btnInsert = (Button) this.findViewById(R.id.btn_insert);
btnUpdate = (Button) this.findViewById(R.id.btn_update);
btnQuery = (Button) this.findViewById(R.id.btn_query);
btnDelete = (Button) this.findViewById(R.id.btn_delete);
// 为按钮设置监听器
btnCreateDatabase.setOnClickListener(this);
btnUpdateDatabase.setOnClickListener(this);
btnInsert.setOnClickListener(this);
btnUpdate.setOnClickListener(this);
btnQuery.setOnClickListener(this);
btnDelete.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
// btn_createDatebase点击事件监听器
case R.id.btn_createDatebase:
// 创建了一个DatebaseHelper对象,只执行这句话是不会创建或打开连接的
DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,
"test01_db");
// 只有调用了DatabaseHelper的getWritableDatabase()方法或者getReadableDatabase()方法之后,才会创建或打开一个连接
SQLiteDatabase sqLiteDatabase = dbHelper.getReadableDatabase();
break; // btn_updateDatebase点击事件监听器
case R.id.btn_updateDatebase:
DatabaseHelper dbHelper2 = new DatabaseHelper(MainActivity.this,
"test01_db", 2);
// 得到一个只读的SQLiteDatabase对象
SQLiteDatabase sqLiteDatabase2 = dbHelper2.getReadableDatabase();
break; // btn_insert点击事件监听器
case R.id.btn_insert:
// 创建ContentValues对象
ContentValues values = new ContentValues();
// 向该对象中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据库当中的数据类型一致
values.put("id", 1);
values.put("name", "zhangsan");
// 创建DatabaseHelper对象
DatabaseHelper dbHelper3 = new DatabaseHelper(MainActivity.this,
"test01_db", 2);
// 得到一个可写的SQLiteDatabase对象
SQLiteDatabase sqLiteDatabase3 = dbHelper3.getWritableDatabase();
// 调用insert方法,就可以将数据插入到数据库当中
// 第一个参数:表名称
// 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
// 第三个参数:ContentValues对象
sqLiteDatabase3.insert("test01_db", null, values);
break; // btn_update点击事件监听器
case R.id.btn_update:
// 创建一个DatabaseHelper对象
DatabaseHelper dbHelper4 = new DatabaseHelper(MainActivity.this,
"test01_db", 2);
// 得到一个可写的SQLiteDatabase对象
SQLiteDatabase sqliteDatabase4 = dbHelper4.getWritableDatabase();
// 创建一个ContentValues对象
ContentValues values2 = new ContentValues();
values2.put("name", "lisi");
// 调用update方法
// 第一个参数String:表名
// 第二个参数ContentValues:ContentValues对象
// 第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符
// 第四个参数String[]:占位符的值
sqliteDatabase4.update("user", values2, "id=?",
new String[] { "1" });
System.out.println("-----------update------------");
break; // btn_query点击事件监听器
case R.id.btn_query:
String id = null;
String name = null;
DatabaseHelper dbHelper5 = new DatabaseHelper(MainActivity.this,
"test01_db", 2);
SQLiteDatabase sqLiteDatabase5 = dbHelper5.getReadableDatabase();
// 调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象
// 第一个参数String:表名
// 第二个参数String[]:要查询的列名
// 第三个参数String:查询条件
// 第四个参数String[]:查询条件的参数
// 第五个参数String:对查询的结果进行分组
// 第六个参数String:对分组的结果进行限制
// 第七个参数String:对查询的结果进行排序
Cursor cursor = sqLiteDatabase5.query("user", new String[] { "id",
"name" }, "id=?", new String[] { "1" }, null, null, null);
while(cursor.moveToNext()){
id = cursor.getString(cursor.getColumnIndex("id"));
name = cursor.getString(cursor.getColumnIndex("name"));
}
System.out.println("-------------query------------");
System.out.println("id: "+id);
System.out.println("name: "+name);
break; // btn_delete点击事件监听器
case R.id.btn_delete:
//创建DatabaseHelper对象
DatabaseHelper dbHelper6 = new DatabaseHelper(MainActivity.this,"test01_db",2);
//获得可写的SQLiteDatabase对象
SQLiteDatabase sqliteDatabase6 = dbHelper6.getWritableDatabase();
//调用SQLiteDatabase对象的delete方法进行删除操作
//第一个参数String:表名
//第二个参数String:条件语句
//第三个参数String[]:条件值
sqliteDatabase6.delete("user", "id=?", new String[]{"1"});
System.out.println("----------delete----------");
break;
default:
break;
}
} }

在虚拟机上运行项目后,如何查看自己已经成功创建了数据表了呢?

可以在eclipse中,选择DDMS,再选择File explorer

找到data/data/自己项目的包名/自己的创建的数据表名

如下图所示:

项目源码已经上传https://github.com/presCheng/sqliteDatabaseTest.git

android SQLite使用SQLiteOpenHelper类对数据库进行增删查改的更多相关文章

  1. android SQLite使用SQLiteOpenHelper类对数据库进行操作

    android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580

  2. MongoDB数据库(二):增删查改

    MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...

  3. java实现简单的数据库的增删查改,并布局交互界面

        一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...

  4. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

  5. MongoDB数据库进阶 --- 增删查改...

    注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 在之前的文章中,我已经介绍了什么事MongoDB以及怎么在windows下安装MongoDB等等基本知识. ...

  6. C++连接sqlite数据库的增删查改操作

    这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等. 不明白的翻我前面2篇看看~~~ 关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕 ...

  7. js实现对数据库的增删查改

    1.查询 复制代码 代码如下: <HTML> <HEAD> <TITLE>数据查询</TITLE> <Script > var conn = ...

  8. 用Jmeter实现mysql数据库的增删查改

    主要是参考虫师的“使用JMeter创建数据库(Mysql)测试”. 1.打开Jmeter,点击测试计划 链接:https://pan.baidu.com/s/1ZtaZ6IC_0DRjSlXkjslY ...

  9. SSM框架-MyBatis框架数据库的增删查改操作

    话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:

随机推荐

  1. JLRoutes--处理复杂的URL schemes-备

    关键字:URL,URL schemes,Parse  代码类库:网络(Networking) GitHub链接:https://github.com/joeldev/JLRoutes   JLRout ...

  2. springmvc 参数绑定

    1. httpservletrequest request request.getParameter("a")方法去取参数 用注解@RequestParam绑定请求参数 用注解@R ...

  3. LINQ to SQL 建立实体类

    使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类.在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作.数据库返回后,L ...

  4. 转:PHP 使用ZipArchive压缩文件并下载

    原文来自于:http://courages.us/archives/176 网站上需要提供一些打印数据给用户下载,这些文件每次都需要重新生成,因为随时都会有新的数据产生.网络上关于PHP的压缩功能实现 ...

  5. 使用Windows 系统性能监控来报警磁盘空间不足

    http://blog.csdn.net/jiangxinyu/article/details/4370288

  6. 读undo问题

    SQL> drop table test1 purge; Table dropped. SQL> create table test1 as select * from dba_objec ...

  7. C# 中dataTable中的数据批量增加至数据表中

    /// <summary> /// 批量添加 /// </summary> /// <param name="dt"></param> ...

  8. LeetCode——Longest Substring Without Repeating Characters

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  9. vs 2013调试的时候重启的解决方案

    今天在用vs 2013 调试程序的时候,vs 总是莫名其妙的关闭,停止运行,泪蹦了..... 是什么原因呢? 以前的时候可是好好的啊,经过认真的思索,最近装过和vs 2013 相关的程序也只有 ref ...

  10. libvirt之virt-install

    在使用kvm命令建立虚拟机时每次都要输入很长的命令,容易出现输入错误,可以使用libvirt管理虚拟机,libvirt支持kvm,xen等主流虚拟机的管理,下面介绍一下利用libvirt管理虚拟机. ...