• 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();




  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6880103.html
Copyright © 2020-2023  润新知