zoukankan      html  css  js  c++  java
  • android开发之使用SQLite数据库(db文件)

    在开发中,有时须要使用db文件数据库。所以就须要将其导入项目,再将其使用程序写入到应用的db文件下使用。

    代码非常easy。能够拿来直接使用。

    要使用须要两个步骤:

    1.创建raw文件。导入db文件。例如以下:


    2.代码

    public class DBOpenHelper {
    	private final int BUFFER_SIZE = 400000;
    	public static final String DB_NAME = "idiom.db"; // 保存的数据库文件名称
    	public static final String PACKAGE_NAME = "cn.edu.bzu.happy";// 应用的包名
    	public static final String DB_PATH = "/data"
    			+ Environment.getDataDirectory().getAbsolutePath() +"/"
    			+ PACKAGE_NAME+ "/databases"; // 在手机里存放数据库的位置
    	//sdcard的路径(在android 4.4中不好使,文件成功创建是在手机的)
    	//public static final String DB_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/idiom";
    
    	private Context context;
    	
    	public DBOpenHelper(Context context) {
    		this.context = context;
    	}
    
    
    	public SQLiteDatabase openDatabase() {
    		try {
    			File myDataPath = new File(DB_PATH);
    			if (!myDataPath.exists())
    			{		
    				myDataPath.mkdirs();// 假设没有这个文件夹,则创建
    			}
    			String dbfile=myDataPath+"/"+DB_NAME;
    			if (!(new File(dbfile).exists())) {// 推断数据库文件是否存在,若不存在则运行导入,否则直接打开数据库
    				InputStream is = context.getResources().openRawResource(
    						R.raw.idiom); // 欲导入的数据库
    				FileOutputStream fos = new FileOutputStream(dbfile);
    				byte[] buffer = new byte[BUFFER_SIZE];
    				int count = 0;
    				while ((count = is.read(buffer)) > 0) {
    					fos.write(buffer, 0, count);
    				}
    				fos.close();
    				is.close();
    			}
    			SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,
    					null);
    			return db;
    		} catch (FileNotFoundException e) {
    			Log.e("Database", "File not found");
    			e.printStackTrace();
    		} catch (IOException e) {
    			Log.e("Database", "IO exception");
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    
    }

    使用:

    public class TestDao {
    	private DBOpenHelper dbHelper;
    
    	public TestDao (Context context) {
    		dbHelper = new DBOpenHelper(context);
    	}
    
    	public List<Test> getAllTests() {
    		List<Test> animals = new ArrayList<Test>();
    		SQLiteDatabase sqLiteDatabase = dbHelper.openDatabase();
    		Cursor cursor = sqLiteDatabase.rawQuery("select * from test", null);
    		While(cursor.moveToNext()){
    		//获取你的数据
    		}
    	}
    }

    TestDao  test = new TestDao();
    
    test.getAllTests();




  • 相关阅读:
    解决无法进入安全模式
    解决SQLite找不到数据表的问题
    利用js的垃圾回收原理来理解闭包(Closure)问题
    《降级论》《按时交作业的学生何以常穿脏袜子》读后感
    ie6下出现“缺少标识符、字符串或者数字”
    两个想法
    WdatePicker.js帮助文档
    最近一直在研究网站的推广。。。
    这个。。。。我不知道说什么。。。
    今天忽然发现,最近做的网站的一个目标关键字已经实现了。。。
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6880103.html
Copyright © 2011-2022 走看看