Android数据存储--sqlite
2011-08-06 11:52
357 查看
SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,而且被其他的公司广泛使用。
Android SQLite,从Android SDK中可以看到,对数据库的操作都封装好了,
常用的一个类就是ContentValues,类似一个Hashmap存放键值对。
我们一般使用sqlite,自己写个类型继承SQLiteOpenHelper,通过这个类的getWritableDatabase方法,可以获得一个SQLiteDatabase的实例。
进而我们可以实现对数据的基本操作了(增,删,改,查)。
Android SQLite,从Android SDK中可以看到,对数据库的操作都封装好了,
常用的一个类就是ContentValues,类似一个Hashmap存放键值对。
我们一般使用sqlite,自己写个类型继承SQLiteOpenHelper,通过这个类的getWritableDatabase方法,可以获得一个SQLiteDatabase的实例。
进而我们可以实现对数据的基本操作了(增,删,改,查)。
public class DBHelper extends SQLiteOpenHelper { public final static String DB_NAME="contact"; public final static int VERSION=1; private static DBHelper instance=null; private SQLiteDatabase db; public static DBHelper getInstance(Context context){ if(instance==null) { instance=new DBHelper(context); } return instance; } private void openDatabase() { db=this.getWritableDatabase(); } public DBHelper(Context context){ super(context,DB_NAME,null,VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub StringBuffer tableUserCreate =new StringBuffer(); tableUserCreate.append("create table User (id integer primary key autoincrement,") .append("name text,") .append("phonenumber text)"); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { // TODO Auto-generated method stub String sql="drop table if exists user"; db.execSQL(sql); onCreate(db); } //增加一个user public boolean saveUser(User user) { openDatabase(); ContentValues value=new ContentValues(); String phonenumber = user.getPhoneNumber(); System.out.println("pjoneId:"+phonenumber); Cursor cursor = db.query("User", new String []{"id","phonenumber","name"} , "phonenumber=?",new String[]{phonenumber} , null, null, null); cursor.moveToNext(); System.out.println("count:"+cursor.getCount()); if(cursor.getCount()==0) { value.put("name", user.getName()); value.put("phonenumber", user.getPhoneNumber()); db.insert("User", null, value); System.out.println("save"); } System.out.println("no save"); if(cursor!=null){ cursor = null; db.close(); } return true; } //获取数据库中所有的user public List<Map<String, Object>> getUser(){ openDatabase(); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Cursor cursor = db.query("User", new String []{"id","name","phonenumber"} , null, null, null, null, null); if(cursor!=null){ if(cursor.isBeforeFirst()){ while(cursor.moveToNext()) { Map<String,Object> map = new HashMap<String, Object>(); map.put("name",cursor.getString(cursor.getColumnIndex("name")); map.put("id",cursor.getString(cursor.getColumnIndex("id"))); map.put("phonenumber",cursor.getString(cursor.getColumnIndex("phonenumber"))); list.add(map); } } } if(cursor!=null){ cursor = null; db.close(); } return list; } //修改user信息 public boolean editUser(User user) { // TODO Auto-generated method stub openDatabase(); ContentValues cv = new ContentValues(); cv.put("phonenumber ",user.getPhoneNumber()); cv.put("name", user.getName()); db.update("user", cv, "id=+'"+user.getId()+"'" , null); db.close(); return true; } //取user中的某一字段 public String getUserName(String phonenumber) { // TODO Auto-generated method stub openDatabase(); String name = null; Cursor cursor = db.query("User", new String []{"name"}, "phonenumber='" + phonenumber + "'", null, null, null, null); if(cursor.isBeforeFirst()){ while(cursor.moveToNext()) { name = cursor.getString(cursor.getColumnIndex("name")); System.out.println("name="+name); } } if(cursor!=null){ cursor = null; db.close(); } return name; } //按条件删除user public boolean deleteUserById(int id) { // TODO Auto-generated method stub openDatabase(); db.delete("User","id='"+id+"'", null); System.out.println("true"); db.close(); return true; } @Override public String getUserNumber(String str) { // TODO Auto-generated method stub openDatabase(); String number = null; Cursor cursor = db.query("User", new String []{"phonenumber"}, "name='" + str + "'", null, null, null, null); if(cursor.isBeforeFirst()){ while(cursor.moveToNext()) { number = cursor.getString(cursor.getColumnIndex("name")); System.out.println("number="+number); } } if(cursor!=null){ cursor = null; db.close(); } return number; } }
相关文章推荐
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File
- android 数据存储之SQLite
- Android数据存储:SQLite
- android(19)_数据存储与访问_SQLite数据库_使用SQLiteDatabase提供的增删改查方法
- Android之旅十二 Android中的SQLite数据存储及单元测试
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
- Android 数据存储和IO——SQLite(二)
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File 之 —— SharedPreferences
- Android数据存储方式之 SQLite
- Android数据的四种存储方式(1)SharedPreferences、SQLite、Content Provider和File 简介
- 2010-02-28 传智播客—Android(三)数据存储之三SQLite嵌入式数据库
- 【Android 开发】:数据存储之 SQLite 数据库操作(一)
- android学习记录3(数据存储的方式:sqlite、sp、存文件。listview简单使用)
- Android的数据存储--SQLite
- Android将SQLite数据表导出到csv格式文件 分类: Android数据存储 2014-06-20 13:28 85人阅读 评论(0) 收藏
- Android数据存储——SharedPreferences、File、Sqlite
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
- Android课程——数据存储之SQLite
- Android demo-->学生选课系统,使用Sqlite存储数据