SqliteDatabase之如何读取数据库()
来源:互联网 发布:sql语言培训班 编辑:程序博客网 时间:2024/06/04 21:00
代码:
package com.qianfeng.sqlitedatabase;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.os.Environment;import android.widget.ListView;import android.widget.SimpleAdapter;public class MainActivity extends Activity {private ListView lv;private List<Map<String, Object>> list;private SQLiteDatabase db ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);list = new ArrayList<Map<String,Object>>();lv = (ListView) findViewById(R.id.lv);String path = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"Download"+File.separator+"info.db";/** * openDatabase 用来打开或创建数据库的方法 * 参数1:数据库的路径 * 参数2:CursorFactory * 参数3:访问数据库的权限 */db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);list = getToDbData();//得到数据库中的数据源SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, list, R.layout.item, new String[]{"_id","name"}, new int[]{R.id.textView1,R.id.textView2});lv.setAdapter(adapter);}/** * 查询数据库表中的数据 保存到 list里 * @return */public List<Map<String, Object>> getToDbData(){List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();//Cursor cursor = db.query("person", null, null, null, null, null, null);Cursor cursor=db.query("person", null,null, null, null, null, "_id desc");while(cursor.moveToNext()){Map<String, Object> map = new HashMap<String, Object>();int id = cursor.getInt(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));map.put("_id", id);map.put("name", name);list.add(map);}return list;}}(2) SimpCursorAdapter:
package com.qianfeng.sqlitedatabase;import java.io.File;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.os.Environment;import android.support.v4.widget.SimpleCursorAdapter;import android.widget.ListView;public class SimpCursorAdapterActivity extends Activity {private ListView lv;private SQLiteDatabase db;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.lv);String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+ "Download"+ File.separator + "info.db";/** * openDatabase 用来打开或创建数据库的方法 参数1:数据库的路径 参数2:CursorFactory 参数3:访问数据库的权限 */db = SQLiteDatabase.openDatabase(path, null,SQLiteDatabase.OPEN_READWRITE);Cursor c = db.rawQuery("select * from person", null);/** * 参数1:上下文对象 * 参数2:每个itme的布局 * 参数3:cursor对象 * 参数4:cursor查询的字段数组 * 参数5:布局里控件的id * 参数6:标记 */SimpleCursorAdapter adapter = new SimpleCursorAdapter(SimpCursorAdapterActivity.this, R.layout.item, c, new String[] {"_id", "name" }, new int[] { R.id.textView1,R.id.textView2 },SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);lv.setAdapter(adapter);}}
(3)CursorAdapter:
package com.qianfeng.sqlitedatabase;import java.io.File;import android.app.Activity;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.os.Environment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.CursorAdapter;import android.widget.ListView;import android.widget.TextView;public class CursorAdapterActivity extends Activity{private ListView lv;private SQLiteDatabase db;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.lv);String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+ "Download"+ File.separator + "info.db";/** * openDatabase 用来打开或创建数据库的方法 参数1:数据库的路径 参数2:CursorFactory 参数3:访问数据库的权限 */db = SQLiteDatabase.openDatabase(path, null,SQLiteDatabase.OPEN_READWRITE);Cursor c = db.rawQuery("select * from person", null);MyCursorAdapter adapter = new MyCursorAdapter(CursorAdapterActivity.this, c);lv.setAdapter(adapter);}/** * 自定义一个CursorAdapter * */class MyCursorAdapter extends CursorAdapter{public MyCursorAdapter(Context context, Cursor c) {super(context, c);// TODO Auto-generated constructor stub}/** * 创建每个item的布局对象 * 返回的的列表中 item的view */@Overridepublic View newView(Context context, Cursor cursor, ViewGroup parent) {// TODO Auto-generated method stubreturn LayoutInflater.from(context).inflate(R.layout.item, null);}/** * 获取newView里view布局 之后 将cursor里的数据绑定给view的控件 * 参数1:newView返回的View * 参数2:上下文对象 * 参数3:带有数据的Cursor对象 */@Overridepublic void bindView(View view, Context context, Cursor cursor) {// TODO Auto-generated method stubTextView tv1 = (TextView) view.findViewById(R.id.textView1);TextView tv2 = (TextView) view.findViewById(R.id.textView2);int id = cursor.getInt(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));tv1.setText(id+"");tv2.setText(name);}}}
1 0
- SqliteDatabase之如何读取数据库()
- android数据库之SQLiteDatabase类
- Launcher开发之SQLiteDatabase数据库管理(二)
- Launcher开发之SQLiteDatabase数据库管理
- 【android】SQLite数据库之SQLiteOpenHelper与SQLiteDatabase
- Android 创建数据库(使用SqliteDataBase)
- Sqlite数据库相关(一)SQLiteDatabase类
- Android数据库 之 SQLite数据库(转http://www.cnblogs.com/kgb250/archive/2012/08/28/sqlitedatabase.html)
- Android学习笔记-数据库开发-4:SQLiteDataBase基本用法(1):获取一个SQLiteDataBase
- [android]数据库SQLiteDatabase简介
- 数据库操作类SQLiteDatabase
- Android 数据库SQLiteDatabase
- SQLiteDatabase数据库操作详解
- android sqlitedatabase 数据库
- SQLiteDataBase数据库的使用
- 使用SQLiteDataBase操作数据库
- Android SQLiteDatabase 数据库存储
- SQLiteDatabase类:数据库对象
- iOS笔记-(利用EGORefreshTableHeaderView自定义上拉加载和下拉刷新)
- 基于规则引擎的电信CRM系统架构研究
- [leetcode] 222.Count Complete Tree Nodes
- Intent用法实例
- UE4编码规范
- SqliteDatabase之如何读取数据库()
- 双链表实例
- 组合查询 ——vb
- Java接口
- hihocoder——1041国庆出游(搜索)
- 单链表排序(插入与归并)
- protues与keil4联调
- hdu1241(Oil Deposits)
- Unreal Enginer4特性介绍