做Android肯定要用到SQLite数据库,下面是SQLite的操作
首先是SQLite的操作类:DBHelper.java

public class DBHelper extends SQLiteOpenHelper {private static final String DB_NAME = "name.db";private static final String TBL_NAME = "Word";private SQLiteDatabase db;private Cursor cursor ;//游标/** * 初始化 * @param c */DBHelper(Context c) {super(c, DB_NAME, null, 2);//2是版本号}/** * 第一次加载数据库时调用,如果是自己导进来的就不用这个了 */@Overridepublic void onCreate(SQLiteDatabase db) { db.execSQL("create table Word(uid integer primary key autoincrement, uname varchar(20), uaddress varchar(20))");  }/** * 查询  * @param g * @return cursor */public Cursor query() {db = getWritableDatabase();cursor = db.rawQuery("select * from Word ",null);//用这个方法可以完成所有的,只要改下sql语句就行return cursor;}//有条件的public Cursor query(String id) {db = getWritableDatabase();cursor = db.rawQuery("select * from Word where uid=? ",new String[]{id});return cursor;}/** * 关闭 */public void close() {if (db != null){db.close();}}

然后在Activity中实例化调用就行

DBHelper dbHelper = new DBHelper(getApplication());Cursor c = dbHelper.query(String.valueOf(1));

因为SQLite嵌入式的,所以我们打包apk的时候,要记得连数据库文件一起打包;

把SQLite数据库文件放到项目下assets中或者是res/raw,两种取值的方法有所不同;

raw:getBaseContext().getResources().openRawResource(R.raw.name);

assets:getBaseContext().getAssets().open(name.db);

下面是具体的操作:

String DB_PATH = "/data/data/com.test.demo/databases/";//com.test.demo是你项目所在的包String DB_NAME = "name.db";//文件名// 检查 SQLite 数据库文件是否存在if ((new File(DB_PATH + DB_NAME)).exists() == false) {// 如 SQLite 数据库文件不存在,再检查一下 database 目录是否存在File f = new File(DB_PATH);// 如 database 目录不存在,新建该目录if (!f.exists()) {f.mkdir();}try {InputStream is = getBaseContext().getResources().openRawResource(R.raw.english);// 输出流FileOutputStream os = new FileOutputStream(DB_PATH+ DB_NAME);int length = is.available();// 文件写入byte[] buffer = new byte[length];while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}// 关闭文件流os.flush();os.close();is.close();} catch (Exception e) {e.printStackTrace();}}

注意:有些系统如2.2的话,如果文件.db大于1M的话,会报错:Data exceeds UNCOMPRESS_DATA_MAX (1622016 vs 1048576) ;因为assetsManager 无法处理大于1M的文件的压缩和解压。只要把我们文件的后缀名改成:".jpg", ".jpeg", ".png", ".gif",
".wav", ".mp2", ".mp3", ".ogg", ".aac",
".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
".amr", ".awb", ".wma", ".wmv" 这些都可以,,,代码还是像上面一样就行

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. dlopen failed: library "/system/lib/libxxx.so" needed or dlo
  6. Android读写文件!!!!
  7. Android中JNI的调用生成头文件步骤
  8. android下的文件权限
  9. 每天一点小知识【6】

随机推荐

  1. 学习笔记:Android(安卓)SQLite,并实现SQLit
  2. Android(安卓)6.0 (marshmallow)中新的新技
  3. 深入解析_Android的自定义布局
  4. Android中经常用到的方法--SDcard下文件
  5. Android上安装并运行 Ubuntu 12.04
  6. Android的消息机制
  7. 关于 Android(安卓)程序使用 Support Lib
  8. Ionic3 安卓签名
  9. Android(安卓)文件系统移植总结
  10. android在线更新的SDK的脚本,