Android使用已有的sqlite数据库的方法
来源:互联网 发布:农村淘宝一单赚多少钱 编辑:程序博客网 时间:2024/05/22 00:11
——热爱开源,乐于分享
Android使用已有的sqlite数据库的方法
本文主要讲解如何实现在Android中使用已有的sqlite数据库,而不是在启动程序时候去写原生SQL语句进行创建等,这样能更方便使用数据。
一、拷贝数据库到工程中
讲需要使用的sqlite数据库文件拷贝到工程的res/raw文件夹下:
二、核心代码:
1.定义变量:
private final String DATABASE_PATH = android.os.Environment .getExternalStorageDirectory().getAbsolutePath() + "/dictionary";//获取sd卡路径private final String DATABASE_FILENAME = "dictionary.db";//数据库文件名称private SQLiteDatabase database;//数据库对象private Button btnSelectWord;//点击用的button
2.实例化变量:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); database = openDatabase();//打开数据库,获得数据库对象 btnSelectWord = (Button) findViewById(R.id.btnSelectWord);//查询按钮 btnSelectWord.setOnClickListener(this);//button监听 }
3.openDatabase()方法:(这是核心)
private SQLiteDatabase openDatabase() { try { // 获得dictionary.db文件的绝对路径 String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; //配置文件或者文件夹路径参数 File dir = new File(DATABASE_PATH);//sd卡的路径,通过Environment获得的 // 如果/sdcard/dictionary目录不存在,创建这个目录 if (!dir.exists()) dir.mkdir(); // 如果在/sdcard/dictionary目录中不存在 // dictionary.db文件,则从res\raw目录中复制这个文件到 // SD卡的目录(/sdcard/dictionary) /** * 通过输入流和输出流来实现文件的复制(这是最常用的复制文件的方法) */ if (!(new File(databaseFilename)).exists()) { // 获得封装dictionary.db文件的InputStream对象 InputStream is = getResources().openRawResource( R.raw.dictionary); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0; // 开始复制dictionary.db文件 while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); } // 打开/sdcard/dictionary目录中的dictionary.db文件 SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase( databaseFilename, null); return database; } catch (Exception e) { } return null; }
4.使用数据库,通过实例化后的database对象进行增删改查操作:
public void onClick(View view) { String sql = "select chinese from t_words where english=?"; Cursor cursor = database.rawQuery(sql, new String[] { textview.getText().toString() }); String result = "未找到该单词."; // 如果查找单词,显示其中文的意思 if (cursor.getCount() > 0) { // 必须使用moveToFirst方法将记录指针移动到第1条记录的位置 cursor.moveToFirst(); result = cursor.getString(cursor.getColumnIndex("chinese")); } // 显示查询结果对话框 new AlertDialog.Builder(this).setTitle("查询结果").setMessage(result) .setPositiveButton("关闭", null).show(); }
4.最后别忘了添加读、写权限和挂载、卸载权限
5.结束!
阅读全文
0 0
- Android使用已有的sqlite数据库的方法
- 如何在Android应用中使用已有的Sqlite数据库
- 在Android程序中使用已有的SQLite数据库
- 在Android程序中使用已有的SQLite数据库
- 在Android程序中使用已有的SQLite数据库
- 在Android程序中使用已有的SQLite数据库
- Android程序中读取使用已有的SQLite数据库
- 在Android程序中使用已有的SQLite数据库
- android中访问已有的sqlite数据库
- android中访问已有的sqlite数据库
- Android导入已有的SQLite数据库
- Android加密已有的sqlite数据库---sqlcipher
- android -sqlite 从已有的.db文件创建数据库链接
- android读取已有的sqlite数据库到sdcard或ro
- code first 使用已有的数据库并且改为Dbfirst获取Models的方法和TT模版
- Android开发学习:使用已有的sql数据库
- Android开发—使用已有的sql数据库
- 使用VS2005的Server Explorer无法连接已有的数据库
- Python-14 函数:灵活即强大
- IO之流输入输出FileInputStream和FileOutputStream
- Bigdata Development Java_Study_04(interface 堆,栈)
- JavaScript常见问题整理
- 多进程的Python实现
- Android使用已有的sqlite数据库的方法
- awk用法简介
- 欢迎使用CSDN-markdown编辑器
- hdu 2034 人见人爱A-B
- express模拟mock数据
- C语言学习:信号屏蔽字sigset_t,sigprocmask,sigpending
- 九度oj 题目1467:二叉排序树
- 浅谈五大Python Web框架
- LeetCode 7. Reverse Integer