Android开发之SQLite数据库

原创 2012年11月18日 20:31:56

        首先SQLite是一款非常优秀并且广泛使用于嵌入式软件中的数据库,关于其具体的情况,可以去SQLite的官网上查看点击打开链接

       如下是android中关于SQLite的介绍


     其实这些都不重要,只要知道它跟一般我们用的诸如oracle、mysql之类的数据库一样,只是功能受限而已,但是基本的增删改查还是可以胜任的。好了,我们看看今天的程序,跟jdbc一样,我们需要先建立一个dbhelper类来操作数据库,如下

package com.sqliteTest;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DataBaseHelper extends SQLiteOpenHelper {
	
	private static final int VERSION = 1;
	
	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) {
		this(context, name, VERSION);
		// TODO Auto-generated constructor stub
	}
	public DataBaseHelper(Context context, String name, int version) {
		this(context, name, null, version);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		System.out.println("create a database");
		db.execSQL("create table user(id int, name varchar(20))");
	}
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		System.out.println("update a database");
	}
	

}
关于构造函数中的参数问题,在eclipse中编程时会自动提示的,这里就不多说了。下面是Activity类

package com.sqliteTest;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SqliteTest extends Activity {
    private Button createD, updateD, insert, update, query = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        createD = (Button)findViewById(R.id.createD);
        updateD = (Button)findViewById(R.id.updateD);
        update = (Button)findViewById(R.id.update);
        insert = (Button)findViewById(R.id.insert);
        query = (Button)findViewById(R.id.query);
        
        createD.setOnClickListener(new CreateD_Listener());
        updateD.setOnClickListener(new UpdateD_Listener());
        insert.setOnClickListener(new Insert_Listener());
        update.setOnClickListener(new Update_Listener());
        query.setOnClickListener(new Query_Listener());
    }
    
    class CreateD_Listener implements OnClickListener {

		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			DataBaseHelper helper = new DataBaseHelper(SqliteTest.this, "test_db");
			SQLiteDatabase database = helper.getReadableDatabase();
		}
    	
    }
    class UpdateD_Listener implements OnClickListener {
    	
    	@Override
    	public void onClick(View arg0) {
    		// TODO Auto-generated method stub
    		DataBaseHelper helper = new DataBaseHelper(SqliteTest.this, "test_db", 2);
			SQLiteDatabase database = helper.getReadableDatabase();
    	}
    	
    }
    class Update_Listener implements OnClickListener {
    	
    	@Override
    	public void onClick(View arg0) {
    		// TODO Auto-generated method stub
    		ContentValues value = new ContentValues();
    		value.put("name", "update_thinkpad");
    		DataBaseHelper helper = new DataBaseHelper(SqliteTest.this, "test_db");
			SQLiteDatabase database = helper.getWritableDatabase();
			database.update("user", value, "id=?", new String[]{"2012"});
    	}
    	
    }
    class Insert_Listener implements OnClickListener {
    	
    	@Override
    	public void onClick(View arg0) {
    		// TODO Auto-generated method stub
    		ContentValues value = new ContentValues();
    		value.put("id", 2012);
    		value.put("name", "thinkpad");
    		DataBaseHelper helper = new DataBaseHelper(SqliteTest.this, "test_db");
			SQLiteDatabase database = helper.getWritableDatabase();
			database.insert("user", null, value);
    	}
    	
    }
    class Query_Listener implements OnClickListener {
    	
    	@Override
    	public void onClick(View arg0) {
    		// TODO Auto-generated method stub
    		DataBaseHelper helper = new DataBaseHelper(SqliteTest.this, "test_db");
			SQLiteDatabase database = helper.getReadableDatabase();
			Cursor cursor = database.query("user", new String[]{"id", "name"}, "id=?", 
					new String[]{"2012"}, null, null, null);
			while(cursor.moveToNext()){
				String name = cursor.getString(cursor.getColumnIndex("name"));
				System.out.println("query---"+name);
			}
    	}
    	
    }
}
这里最重要的就是SQLiteOpenHelper类,创建和链接数据库时候必需的,关于具体的解释,来看看官方 文档


从这里,我们可以清楚的了解到其使用方法。

如下是程序运行的结果

点击create database时,结果如下

可以看到创建数据库的时候,执行了onCreate()方法。

点击update database时,如下

可知其执行了onUpgrade()方法。

点击insert和update的时候,没有系统必须要求重写的方法执行,但是我们自己写的逻辑的代码肯定执行了,不信的话,点击query按钮看看,效果如下

name已经从thinkpad更新成update_thinkpad,证明我们首先insert成功,然后update成功,最后query也成功了。


SQLite数据库部分就先说到这里,下面说一个开发此程序期间的一个插曲。创建工程的时候大意了,不小心把Activity类名小写了,在运行的时候在发现,于是我就把小写改成大写了,但是运行的时候报错,说androidManager找不到这个类,这就奇怪了,涉及到类名的地方我都改过了,怎么会找不到呢,后来网上搜了一下解决方法,一哥们总结的很好,如下



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android开发之SQLite数据库详解

Android开发之SQLite数据库详解 Android系统集成了一个轻量级的数据库:SQLite, SQLite并不想成为像Oracle、MySQL 那样的专业数据库。SQLite只是一个嵌入...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年10月17日 23:41
  • 5956

【Android数据存储】SQLite使用实例(附源码)

实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员   数据库基类 – DBHelper.java 01 pa...
  • wirelessqa
  • wirelessqa
  • 2013年02月16日 16:06
  • 13799

Android如何连接和操作SQLite数据库

Android中如何使用sqlite数据库? Android中为我们操作sqlite数据库提供了一些接口,比如SQLiteOpenHelper等,总体的思路是:先继承SQLiteOpenHe...
  • IT_ZJYANG
  • IT_ZJYANG
  • 2016年03月10日 23:35
  • 5170

Android开发之SQLIte数据库

  • 2015年10月26日 12:51
  • 1.43MB
  • 下载

Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(D...
  • sgx425021234
  • sgx425021234
  • 2013年06月04日 23:54
  • 13283

android开发使用SQLite数据库

Android 开发中使用 SQLite 数据库 Activites 可以通过 Content Provider 或者 Service 访问一个数据库。下面会详细讲解如果创建数据库,添加数据和查询数据...
  • wangshuhua81
  • wangshuhua81
  • 2017年05月02日 15:10
  • 276

android开发轻量级数据库SQLite

android开发app难免要存储一些数据到本地,作为缓存,这就要用到安卓系统的SQLite 数据库用于存储数据,数据以文档的形式存到本地外部存储空间。 SQLite与mySQL存储方...
  • jjfly999
  • jjfly999
  • 2016年07月27日 19:43
  • 547

android开发之使用SQLite数据库(db文件)

在开发中,有时需要使用db文件数据库,所以就需要将其导入项目,再将其使用程序写入到应用的db文件下使用。 代码很简单,可以拿来直接使用。 要使用需要两个步骤: 1.创建raw文件,导入db文件,...
  • u011609853
  • u011609853
  • 2014年12月17日 23:21
  • 1949

android开发之使用SQLite数据库存储

SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP...
  • jason0539
  • jason0539
  • 2013年11月16日 20:56
  • 8613

Android开发 SQLite 通过.db文件导入已有数据库

见过几次Android数据库操作,貌似都是在程序开始时建一个空数据库,然后进行操作。 那,如果想要用一个已有的数据库怎么办? 因为Android系统下的数据库是存放在/data/dat...
  • Emperor_rock
  • Emperor_rock
  • 2015年12月24日 17:26
  • 2285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发之SQLite数据库
举报原因:
原因补充:

(最多只允许输入30个字)