Android开发之SQLite数据库
2012-11-18 20:31
113 查看
首先SQLite是一款非常优秀并且广泛使用于嵌入式软件中的数据库,关于其具体的情况,可以去SQLite的官网上查看点击打开链接
如下是android中关于SQLite的介绍
其实这些都不重要,只要知道它跟一般我们用的诸如oracle、mysql之类的数据库一样,只是功能受限而已,但是基本的增删改查还是可以胜任的。好了,我们看看今天的程序,跟jdbc一样,我们需要先建立一个dbhelper类来操作数据库,如下
从这里,我们可以清楚的了解到其使用方法。
如下是程序运行的结果
点击create database时,结果如下
可以看到创建数据库的时候,执行了onCreate()方法。
点击update database时,如下
可知其执行了onUpgrade()方法。
点击insert和update的时候,没有系统必须要求重写的方法执行,但是我们自己写的逻辑的代码肯定执行了,不信的话,点击query按钮看看,效果如下
name已经从thinkpad更新成update_thinkpad,证明我们首先insert成功,然后update成功,最后query也成功了。
SQLite数据库部分就先说到这里,下面说一个开发此程序期间的一个插曲。创建工程的时候大意了,不小心把Activity类名小写了,在运行的时候在发现,于是我就把小写改成大写了,但是运行的时候报错,说androidManager找不到这个类,这就奇怪了,涉及到类名的地方我都改过了,怎么会找不到呢,后来网上搜了一下解决方法,一哥们总结的很好,如下
如下是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 应用开发】Android 数据存储 之 SQLite数据库详解
- Android开发SQLite数据库的创建
- Android开发-之SQLite数据库
- Android开发基础之SQLite数据库 单元测试的使用
- 性格色彩测试android程序开发之九--sqlite数据库
- Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
- Android应用开发之SQLite数据库2
- Android开发怎么查看和管理sqlite数据库
- android开发学习(三)——sqlite数据库
- Android开发——SQLite数据库框架Sugar的使用
- Android开发之SQLite数据库
- Android开发之数据存储与访问(4)-SQLite数据库
- Android开发框架xUtils3.x新手教学(一)SQLite数据库访问神器dBUtils
- Android开发8:SQLite数据库和ContentProvider的使用
- Android开发查看Sqlite数据库
- Android开发-略讲adb命令和SQLite数据库运用
- Android开发中SQLite数据库的查看
- Android学习开发笔记之SQLite数据库操作
- android开发之使用SQLite数据库存储
- Android 开发 SQLite数据库