Android学习之操作SQLite
2010-11-24 15:23
295 查看
基本上写程序总会要和数据库打交道,最近学习android,熟悉了下sqlite,额,也不能说熟悉把,就是大体上看了下,晓得怎么用了,把我写的贴上来。
关于Sqlite数据库这里就不多少了,谷歌下网上一大堆。
下面的代码是调用这个类来操作数据库:
最后看下导出来的数据库:
运行效果:
关于Sqlite数据库这里就不多少了,谷歌下网上一大堆。
package org.leepood.sqlite; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; //自定义的数据库通用访问类,简单地写了下创建,插入,查询数据库 public class DBAdapter { private Context context; private SQLiteDatabase database; public DBAdapter(Context context) { this.context=context; } //打开或者创建数据库 public void OpenOrCreateDB(String DBName) { database=context.openOrCreateDatabase(DBName,0, null); } //创建表结构 //参数tablaename表示表名 //fields表示字段 public void CreateTable(String tablename,Object[] fields) { StringBuffer sb=new StringBuffer(); String allfields=new String(); //构造字段字符串,android的表里必须有个_id字段且为主键,sqlite会忽略其他字段的类型 for(Object obj :fields) { allfields+=obj.toString()+","; } allfields=allfields.substring(0, allfields.length()-1); sb.append("Create table if not exists ").append(tablename).append("(_id integer primary key,").append(allfields).append(")"); //Log.i("sql", sb.toString()); database.execSQL(sb.toString()); } //插入数据,fields和values长度必须相同,字段和字段的值一一对应 public void Insert(String tablename,Object[] fields,Object[] values) { if(fields.length==values.length) { StringBuffer sb=new StringBuffer(); String allfields=new String(); String allvalues=new String(); for(int i=0;i<fields.length;i++) { allfields+=fields[i].toString()+","; allvalues+="\""+values[i].toString()+"\""+","; } allfields=allfields.substring(0,allfields.length()-1); allvalues=allvalues.substring(0,allvalues.length()-1); sb.append("insert into ").append(tablename).append("(").append(allfields).append(") ").append("values(") .append(allvalues).append(")"); //Log.i("sqlinsert", sb.toString()); database.execSQL(sb.toString()); } } //查询数据,返回cursor public Cursor getCursor(String tablename,String condition,Object[] fields) throws Exception { StringBuffer sb=new StringBuffer(); String allfields =new String(); if(fields==null) { allfields="*"; } else { for(int i=0;i<fields.length;i++) { allfields+=fields[i].toString()+","; } allfields=allfields.substring(0,allfields.length()-1); } sb.append("select ").append(allfields).append(" from ").append(tablename).append(" where ").append(condition); Log.i("sqlquery", sb.toString()); return database.rawQuery(sb.toString(), null); } }
下面的代码是调用这个类来操作数据库:
package org.leepood.sqlite; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; public class MainActive extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DBAdapter dbadapter= new DBAdapter(this.getApplicationContext()); dbadapter.OpenOrCreateDB("lacus"); 17 18 dbadapter.CreateTable("leepood", new Object[]{"name","age","sex"}); dbadapter.Insert("leepood", new Object[]{"name","age","sex"}, new Object[]{"leepood","13","男"}); dbadapter.Insert("leepood", new Object[]{"name","age","sex"}, new Object[]{"iagyje","132","男"}); dbadapter.Insert("leepood", new Object[]{"name","age","sex"}, new Object[]{"lee","33","男"}); dbadapter.Insert("leepood", new Object[]{"name","age","sex"}, new Object[]{"sunlinyu","23","男"}); try { Cursor cursor=dbadapter.getCursor("leepood", "1=1", null); while(cursor.moveToNext()) { Log.i("cursor_id", Integer.toString(cursor.getInt(0))); Log.i("cursor_name",cursor.getString(1)); } //Log.i("coloumncount", Integer.toString(cursor.getColumnCount())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
最后看下导出来的数据库:
运行效果:
相关文章推荐
- Android学习之旅--sqlite3 数据库命令操作
- Android平台学习基础(2)-SQLite基本操作
- Android SQLite数据操作 【学习记录】
- 【转】Android获取用于操作数据库的SQLiteDatabase实例【学习记录】
- Android学习(十) SQLite 基于内置函数的操作方式
- android的基础学习:SQLite存储方式以及数据库操作
- Android学习篇章23-SQLite数据库操作:SQLiteOpenHelper-单例模式
- 2014-10-27Android学习------SQLite数据库操作(二)-----数据库的创建--SQLiteHelper extends SQLiteOpenHelper
- Android 学习之SQLite基本操作
- Android学习之旅--sqlite3 数据库命令操作
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo
- Android学习(十) SQLite 基于SQLiteOpenHelper的操作方式
- 记android学习之路----数据持久化之sqlite操作实例1
- 记android学习之路----数据持久化之sqlite操作实例2
- android开发学习笔记——sqlite操作
- Android学习篇章22-SQLite数据库操作:SQLiteDatabase
- 【转】Android使用SQLiteDatabase操作SQLite数据库【学习记录】
- android sqlite数据库的操作
- android学习 -- ListView和数据库操作
- Android中SQLiteDatabase操作【附源码】