使用安卓读取sqlite数据库方法记录

最近要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子。主要是输入英语到数据库中查询相应的汉语意思,将其答案输出。数据库采用sqlite3.

如图:

实现过程完全是按照参考文章中所述。其中要说明的是,程序在第一次启动的时候,会把数据库安装到内存卡上面,从而可以读却数据库。

相关的代码:

Java代码  

  1. package com.easymorse;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.InputStream;
  5. import android.app.Activity;
  6. import android.app.AlertDialog;
  7. import android.database.Cursor;
  8. import android.database.sqlite.SQLiteDatabase;
  9. import android.os.Bundle;
  10. import android.text.Editable;
  11. import android.text.TextWatcher;
  12. import android.util.Log;
  13. import android.view.View;
  14. import android.view.View.OnClickListener;
  15. import android.widget.AutoCompleteTextView;
  16. import android.widget.Button;
  17. public class Dictionary extends Activity  implements OnClickListener, TextWatcher{
  18. private final String DATABASE_PATH = android.os.Environment
  19. .getExternalStorageDirectory().getAbsolutePath()
  20. + "/dictionary";
  21. private final String DATABASE_FILENAME = "dictionary.db3";
  22. SQLiteDatabase database;
  23. Button btnSelectWord;
  24. AutoCompleteTextView actvWord;
  25. @Override
  26. public void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.main);
  29. // 打开数据库,database是在Main类中定义的一个SQLiteDatabase类型的变量
  30. database = openDatabase();
  31. // 下面的代码装载了相关组件,并设置了相应的事件
  32. btnSelectWord = (Button) findViewById(R.id.btnSelectWord);
  33. actvWord = (AutoCompleteTextView) findViewById(R.id.actvWord);
  34. btnSelectWord.setOnClickListener(this);
  35. actvWord.addTextChangedListener(this);
  36. }
  37. public void onClick(View view)
  38. {
  39. //  查找单词的SQL语句
  40. String sql = "select chinese from t_words where english=?";
  41. Cursor cursor = database.rawQuery(sql, new String[]
  42. { actvWord.getText().toString() });
  43. String result = "未找到该单词.";
  44. //  如果查找单词,显示其中文信息
  45. if (cursor.getCount() > 0)
  46. {
  47. //  必须使用moveToFirst方法将记录指针移动到第1条记录的位置
  48. cursor.moveToFirst();
  49. result = cursor.getString(cursor.getColumnIndex("chinese"));
  50. Log.i("tran", "success"+result);
  51. }
  52. //  显示查询结果对话框
  53. new AlertDialog.Builder(this).setTitle("查询结果").setMessage(result)
  54. .setPositiveButton("关闭", null).show();
  55. }
  56. private SQLiteDatabase openDatabase() {
  57. try {
  58. // 获得dictionary.db文件的绝对路径
  59. String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
  60. File dir = new File(DATABASE_PATH);
  61. // 如果/sdcard/dictionary目录中存在,创建这个目录
  62. if (!dir.exists())
  63. dir.mkdir();
  64. // 如果在/sdcard/dictionary目录中不存在
  65. // dictionary.db文件,则从res\raw目录中复制这个文件到
  66. // SD卡的目录(/sdcard/dictionary)
  67. if (!(new File(databaseFilename)).exists()) {
  68. // 获得封装dictionary.db文件的InputStream对象
  69. InputStream is = getResources().openRawResource(
  70. R.raw.dictionary);
  71. FileOutputStream fos = new FileOutputStream(databaseFilename);
  72. byte[] buffer = new byte[8192];
  73. int count = 0;
  74. // 开始复制dictionary.db文件
  75. while ((count = is.read(buffer)) > 0) {
  76. fos.write(buffer, 0, count);
  77. }
  78. fos.close();
  79. is.close();
  80. }
  81. // 打开/sdcard/dictionary目录中的dictionary.db文件
  82. SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
  83. databaseFilename, null);
  84. return database;
  85. } catch (Exception e) {
  86. }
  87. return null;
  88. }
  89. @Override
  90. public void afterTextChanged(Editable s) {
  91. }
  92. @Override
  93. public void beforeTextChanged(CharSequence s, int start, int count,
  94. int after) {
  95. }
  96. @Override
  97. public void onTextChanged(CharSequence s, int start, int before, int count) {
  98. }
  99. }

使用安卓读取sqlite数据库方法记录

时间: 2024-10-12 16:34:24

使用安卓读取sqlite数据库方法记录的相关文章

php读取sqlite数据库入门实例

php读取sqlite数据库的例子,php编程中操作sqlite入门实例.原文参考:http://www.jbxue.com/article/php/22383.html在使用SQLite前,要确保php.ini中已经启用sqlite和pdo配置 打开PHP.INI文件,打下以下扩展:extension=php_pdo.dll extension=php_pdo_sqlite.dllextension=php_sqlite.dllsqlite_open命令是打开一个数据库文件. 如果没有文件则创

Swift实现手势解锁&界面跳转&读取SQLite数据库

按钮是根据屏幕大小自动布局,所以不会因为设备不同导致错位 数据库操作是GitHub上的SQLiteDB 下面是Storyboard的设计图 下面是实现的代码 // // ViewController.swift // // // Created by XWJACK on 15/12/15. // Copyright © 2015年 XWJACK. All rights reserved. // import UIKit class ViewController: UIViewController

C#连接SQLite数据库方法

--结合Enterprise Library连接,操作SQLite 企业库是我们常用的框架之一,可以从http://entlib.codeplex.com/下载Enterprise Library 5.0.msi.安装之后有源代码和chm的文档.里面的很多思想更值得我们程序员去研究.企业库中的数据访问组件更是我们常用的数据访问组件之一.组件默认支持SQL Server和Oracle的数据库访问,支持自定义的扩展. --使用企业库操作SQLite数据库 需要用到企业库的一个扩展组件,Enterpr

C#连接Sqlite数据库方法,适用于菜鸟

看了网上介绍的方法,五花八门,看的人一头雾水.自己琢磨了一天总算能连上Sqlite数据库了,现在把方法整理一下,让刚入门的小菜菜少走弯路. 先用工具建一个测试用的Sqlite数据库,命名为test.db,方法自己百度,挺简单的. 安装VS2019,新建一个WPF的桌面应用 添加一个DataGrid的控件,并命名为DataTable 在代码区加入Sqlite的相关引用 再次打开引用,会发现添加了3个引用 在代码区添加两个using 在代码区加入如下代码 原文地址:https://www.cnblo

安卓平台SQLite数据库基础操作总结

最近学了一些安卓开发,在这里分享一下SQLite数据库的使用相关部分,我使用的工具为Android Studio,后台语言为java: 首先,需要创建一个数据库辅助类DataBaseHelper,用于数据库的创建,并方便我们之后对于数据库链接及的操作: package com.example.myapplication; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import an

孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录

(完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服务,今天主要尝试使用firebase_admin模块来连接firebase数据库. 获得成功. 一.简单总结下今天对firebase_admin模块对象的学习 (一)要通过firebase_admin模块连接到firebase数据库,那么必须要拥有一个从firebase网站上自己的数据库的[用户和权限]处设置的'连接私钥'等相关信息的一个json文件,并下载到项目文件夹中来. (二)

android直接读取项目中的sqlite数据库

最近项目中要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照参考文章中所述.其中要说明的是,程序在第一次启动的时候,会把数据库安装到内存卡上面,从而可以读却数据库. 相关的代码: Java代码   package com.easymorse; import java.io.File; import java.io.FileOutputStream; impo

安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货

本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处. 更多文章请关注:做全栈攻城狮.写代码也要读书,爱全栈,更爱生活.请不要吝啬您的手指,关注我吧.关注有惊喜哦. 安卓开发系列文章目录请查看:http://www.chengxiaoxiao.com/bozhu/1336.html 上篇文章:安卓项目-利用Sqlite数据库,开发新闻发布系统讲解了S

转:使用log4net完成程序异常日志记录(使用SQLite数据库记录和普通文本记录)

http://www.cnblogs.com/kyo-yo/archive/2010/06/11/use-log4net-to-log-exception.html 在前端时间开发的时候由于需要将异常保存到数据库中,所以就到网上搜了下专门的日志记录工具,一搜果然很多,比如:log4net,NLog,EntLib Logging等等,但是还是log4net名气最大,所以就下载下来试用了一番,果然很方便,其涵盖了所有常用的日志记录方式具体的可以看下表: AdoNetAppender 将日志记录到数据