public class MyDBOpenHelper extends SQLiteOpenHelper { PRivate Context mContext; //db文件路径,保存在sd卡中 public static final String DB_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + "mydata" + File.separator; //数据库名 public static final String DB_NAME ; //数据库版本 public static final int VERSION = 1; static{ //判断sd卡是否正常挂载 if(! Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ DB_NAME = "test.db";//sd卡未正常挂载,则数据库还保存在默认位置 }else{ DB_NAME = DB_PATH + "test.db"; File dbFolder = new File(DB_PATH); // 目录不存在则自动创建目录 if (!dbFolder.exists()){ dbFolder.mkdirs(); } } } public MyDBOpenHelper(Context context) { super(context, DB_NAME, null, VERSION);//*; dbname;*;dbversion this.mContext = context; } @Override public void onCreate(SQLiteDatabase db) { System.out.println("create"); //建表 System.out.println("create over"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("update"); // db.execSQL("ALTER TABLE person ADD phone VARCHAR(12) NULL"); System.out.println("update over"); } }经过测试,当程序卸载时,数据库并不清空,重新安装程序时,onCreate()方法不执行,数据库数据依然存在.
新闻热点
疑难解答