public class TestSqlDatabase{ private static final String DATABASE_PATH = "/data/data/your.package.name/databases"; //此处不要改动,这个为数据库在手机上的物理地址 private static final int DATABASE_VERSION = 0; private static final String DATABASE_NAME = "test.db"; //此处为数据库名称 private static String outFileName = DATABASE_PATH + "/" + DATABASE_NAME; private Context context; private SQLiteDatabase database; public TestSqlDatabase(Context context) { this.context = context; File file = new File(outFileName); if (file.exists()) { database = SQLiteDatabase.openOrCreateDatabase(outFileName, null); if (database.getVersion() != DATABASE_VERSION) { database.close(); file.delete(); } } try { buildDatabase(); } catch (Exception e) { e.printStackTrace(); } } private void buildDatabase() throws Exception{ InputStream myInput = context.getResources().openRawResource(R.raw.test); File file = new File(outFileName); File dir = new File(DATABASE_PATH); if (!dir.exists()) { if (!dir.mkdir()) { throw new Exception("创建失败"); } } if (!file.exists()) { try { OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer))>0){ myOutput.write(buffer, 0, length); } myOutput.close(); myInput.close(); } catch (Exception e) { e.printStackTrace(); } } } /** * 查找 * @return */ public Cursor select() { database = SQLiteDatabase.openOrCreateDatabase(outFileName, null); String sql = "select * from note_table"; Cursor cursor = database.rawQuery(sql, null); return cursor; } /** * 插入 * @param word * @param note * @return */ public long insert(String word, String note) { database = SQLiteDatabase.openOrCreateDatabase(outFileName, null); ContentValues cv = new ContentValues(); cv.put("word", word); cv.put("note", note); long result = database.insert("note_table", null, cv); return result; } /** * 更新 * @param word * @param note * @return */ private int update(String word, String note) { //参数 word 为修改条件 note为修改内容 database = SQLiteDatabase.openOrCreateDatabase(outFileName, null); ContentValues cv = new ContentValues(); cv.put("note", note); int result = database.update("note_table", cv, "word=?", new String[]{word}); return result; } /** * 删除 * @param word */ public int deleteNote(String word) { database = SQLiteDatabase.openOrCreateDatabase(outFileName, null); int result = database.delete("note_table", "word=?", new String[]{word}); return result; } public void close() { database.close(); } } |