新建DBHeler.JAVA
1 package com.hixin.db; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 6 import com.hixin.contact.User; 7 8 import android.content.ContentValues; 9 import android.content.Context; 10 import android.database.Cursor; 11 import android.database.sqlite.SQLiteDatabase; 12 import android.database.sqlite.SQLiteOpenHelper; 13 14 public class DBHelper extends SQLiteOpenHelper{ 15 public final static String DB_NAME = "contact"; 16 public final static int VERSION = 1; 17 private static DBHelper instance = null; 18 private SQLiteDatabase db; 19 20 //单例模式 21 private DBHelper(Context context) { 22 super(context,DB_NAME,null,VERSION); 23 } 24 25 public static DBHelper getInstance(Context context) { 26 if(instance == null) { 27 instance = new DBHelper(context); 28 } 29 return instance; 30 } 31 private void openDatabase() { 32 if(db == null) { 33 db = this.getReadableDatabase(); 34 } 35 } 36 37 @Override 38 public void onCreate(SQLiteDatabase db) { 39 // TODO Auto-generated method stub 40 StringBuffer tableCreate = new StringBuffer(); 41 tableCreate.append("create table user (_id integer primary key autoincrement,") 42 .append("name text,") 43 .append("mobilephone text,") 44 .append("familyphone text,") 45 .append("officephone text,") 46 .append("position text,") 47 .append("company text,") 48 .append("address text,") 49 .append("email text,") 50 .append("othercontact text,") 51 .append("zipcode text,") 52 .append("remark text,") 53 .append("imageid int)"); 54 55 db.execSQL(tableCreate.toString()); 56 } 57 58 @Override 59 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 60 // TODO Auto-generated method stub 61 String sql = "drop table if exists user"; 62 db.execSQL(sql); 63 onCreate(db); 64 } 65 66 public long save(User user) { 67 openDatabase(); 68 ContentValues value = new ContentValues(); 69 value.put("name", user.username); 70 value.put("mobilephone", user.mobilePhone); 71 value.put("familyphone", user.familyPhone); 72 value.put("officephone", user.officePhone); 73 value.put("position", user.position); 74 value.put("address", user.address); 75 value.put("email", user.email); 76 value.put("othercontact", user.otherContact); 77 value.put("zipcode", user.zipCode); 78 value.put("remark", user.remark); 79 value.put("imageid", user.imageId); 80 81 return db.insert("user", null, value); 82 } 83 84 public ArrayList getUserList() { 85 openDatabase(); 86 Cursor cursor = db.query("user", null, null, null, null, null, null); 87 ArrayList list = new ArrayList(); 88 while (cursor.moveToNext()) { 89 HashMap map = new HashMap(); 90 map.put("imageid", cursor.getInt(cursor.getColumnIndex("imageid"))); 91 map.put("name", cursor.getString(cursor.getColumnIndex("name"))); 92 map.put("mobilephone", cursor.getString(cursor.getColumnIndex("mobilephone"))); 93 list.add(map); 94 } 95 return list; 96 } 97 98 }
主函数中调用
//save user to database
DBHelper.getInstance(MainActivity.this).save(user);
save()调用openDatabase(),如果数据库不存在,则自动调用数据库的onCreate()
//检索数据库
ArrayList data = DBHelper.getInstance(this).getUserList();
tv_name.setText((CharSequence) ((HashMap) data.get(position)).get("name"));
另外一种版本
package com.example.healthembed; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import com.example.healthembed.dummy.BloodPre; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast; public class DatabaseHelper extends SQLiteOpenHelper { private static final String DB_NAME = "person.db"; //数据库名称 private static final int version = 1; //数据库版本 private static DatabaseHelper instance = null; private SQLiteDatabase db; //单例模式 public static DatabaseHelper getInstance(Context context) { if(instance == null) { instance = new DatabaseHelper(context); } return instance; } private void openDatabase() { if(db == null) { db = this.getReadableDatabase(); } } public DatabaseHelper(Context context) { super(context, DB_NAME, null, version); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub /* StringBuffer tableCreate = new StringBuffer(); tableCreate.append("create table user (_id integer primary key autoincrement,") .append("hp int,") .append("lp int)"); db.execSQL(tableCreate.toString()); */ String tableCreate = new String(); tableCreate="create table user (_id integer primary key autoincrement,name varchar(16),pdate text,hp int,lp int)"; db.execSQL(tableCreate); // Toast.makeText(MyApplication.getContext(), "数据保存成功", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub String sql = "drop table if exists user"; db.execSQL(sql); onCreate(db); } public long save(BloodPre user) { openDatabase(); ContentValues value = new ContentValues(); value.put("name", user.name); value.put("pdate",user.time); value.put("hp", user.highp); value.put("lp", user.lowp); return db.insert("user", null, value); } public ArrayList getUserList() { openDatabase(); Cursor cursor = db.query("user", null, null, null, null, null, null); ArrayList<Map> list = new ArrayList(); while (cursor.moveToNext()) { HashMap map = new HashMap(); map.put("name", cursor.getInt(cursor.getColumnIndex("name"))); map.put("pdate", cursor.getString(cursor.getColumnIndex("pdate"))); map.put("hp", cursor.getInt(cursor.getColumnIndex("hp"))); map.put("lp", cursor.getInt(cursor.getColumnIndex("lp"))); list.add(map); } return list; } }