public class DbManager { private static final int BUFFER_SIZE = 2046; public static final String DB_NAME = "school_out.db"; public static final String DB_PATH = "/data" + android.os.Environment.getDataDirectory().getAbsolutePath() + "包名" + "/"; public static final String DB_FILE = DB_PATH + DB_NAME; private Context mContext; private SQLiteDatabase database; public DbManager(Context context) { super(); this.mContext = context; } public void openDatabase() { closeDatebase(); database = openDateBase(); } /** * * <b>功能名:</b> 打开数据库 <br/> * <b>功能描述:</b> <br/> * <b>创建时间:</b> 2013-8-6 <br/> * <b>修改时间:</b> 2013-8-6 <br/> * * @return */ public SQLiteDatabase openDateBase() { File file = new File(DB_FILE); // 如果文件不存在,将 raw 下的db文件复制到 data/data下面 if (!file.exists()) { File filePath = new File(DB_PATH); if(!file.exists()) filePath.mkdirs(); // // 打开raw中得数据库文件,获得stream流 InputStream stream = this.mContext.getResources().openRawResource( R.raw.school_out); try { // 将获取到的stream 流写入道data中 FileOutputStream outputStream = new FileOutputStream(DB_FILE); byte[] buffer = new byte[BUFFER_SIZE]; int count = 0; while ((count = stream.read(buffer)) > 0) { outputStream.write(buffer, 0, count); } outputStream.close(); stream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(DB_FILE, null); return database; } public SchoolBean getBean(String schoolName) { SchoolBean bean = null; Cursor cursor = this.database.rawQuery("SELECT * FROM school_out where name = '" + schoolName + "'", null); try { int index = cursor.getCount(); System.out.println(index); if(index != 0){ cursor.moveToFirst(); bean = new SchoolBean(); bean.setId(cursor.getString(cursor.getColumnIndex("sid"))); bean.setSchoolName(cursor.getString(cursor.getColumnIndex("name"))); } } catch (Exception e) { e.printStackTrace(); }finally { cursor.close(); } return bean; } /** * 获取学校数据(拉取10 条) * */ public ArrayList<SchoolBean> getSchoolList(String where) { ArrayList<SchoolBean> nameList = new ArrayList<SchoolBean>(); Cursor cursor = this.database.rawQuery( "SELECT * FROM school_out where name like '%" + where + "%' limit 0, 20", null); try { for (int i = 0; i < cursor.getCount(); i++) { cursor.moveToPosition(i); SchoolBean bean = new SchoolBean(); bean.setId(cursor.getString(cursor.getColumnIndex("sid"))); bean.setSchoolName(cursor.getString(cursor.getColumnIndex("name"))); nameList.add(bean); } } catch (Exception e) { e.printStackTrace(); }finally{ cursor.close(); } return nameList; } // public SchoolBean[] getSchoolData(String where) // { // ArrayList<SchoolBean> lists = getSchoolList(where); // return (SchoolBean[]) lists.toArray(); // } /** * * <b>功能名:</b> 关闭数据库 <br/> * <b>功能描述:</b> <br/> * <b>创建时间:</b> 2013-8-6 <br/> * <b>修改时间:</b> 2013-8-6 <br/> */ public void closeDatebase() { if (database != null && database.isOpen()) { database.close(); } } }
?