java课程之团队开发冲刺阶段1.7

  一.总结昨天进度

1.昨天学习了对数据库增删改查的基本操作,并且可以使用代码实现操作

  二.遇到的问题

1.由于是学习阶段,没有遇到太大阻碍,但是最终需要实现的是联网进行数据库的读写或者是对本地数据库的操作,这个问题还没有实现

  三.今天的任务

1.开始考虑如何在安装app 的同时预装本地数据库

  当日总结:

1.在前几次博客中已经总结完毕完整的过程

        // com.test.db 是程序的包名,请根据自己的程序调整
        // /data/data/com.test.db/
        // databases 目录是准备放 SQLite 数据库的地方,也是 Android 程序默认的数据库存储目录
        // 数据库名为 test.db
        String DB_PATH = "/data/data/com.example.superman.sqlitestudy/databases/";
        String DB_NAME = "course.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 {
                // 得到 assets 目录下我们实现准备好的 SQLite 数据库作为输入流
                //InputStream is = getBaseContext().getAssets().open(DB_NAME);

                InputStream is = getBaseContext().getResources().openRawResource(R.raw.course);
                // 输出流
                OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);

                // 文件写入
                byte[] buffer = new byte[1024];
                int length;
                while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
                }

                // 关闭文件流
                os.flush();
                os.close();
                is.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        test(DB_PATH,DB_NAME);

    }
    public void test(String DB_PATH,String DB_NAME)
    {
        // 下面测试 /data/data/com.test.db/databases/ 下的数据库是否能正常工作
        SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, null);
        Cursor cursor = database.rawQuery("select * from course", null);
        ArrayList<JavaBean> list=new ArrayList<JavaBean>();
        if(cursor.moveToFirst())
        {
            do{
                String name=cursor.getString(cursor.getColumnIndex("name"));
                String teacher=cursor.getString(cursor.getColumnIndex("teacher"));
                double price=cursor.getDouble(cursor.getColumnIndex("price"));
                list.add(new JavaBean(name,teacher,price));
            }while (cursor.moveToNext());
        }
//        if (cursor.getCount() > 0) {
//            cursor.moveToFirst();
//            try {
//                // 解决中文乱码问题
//                byte test[] = cursor.getBlob(0);
//                String strtest = new String(test, "utf-8").trim();
//                // 看输出的信息是否正确
//                Log.d("是否能够查找到本地数据库的信息",strtest);
//                System.out.println(strtest);
//            } catch (UnsupportedEncodingException e) {
//                // TODO Auto-generated catch block
//                e.printStackTrace();
//            }
//        }
        cursor.close();

        Intent intent=new Intent(AboutDatabases.this,Table.class);
        ArrayList<String> arrayList=new ArrayList<String>();
        int temp=0;
        String string=null;
        Log.d("Arraylist长度",Integer.toString(list.size()));
        for(int i=0;i<list.size();i++)
        {
            string=list.get(i).getName()+"-"+list.get(i).getTeacher()+"-"+list.get(i).getPrice();
            Log.d("得到的数据",string);
            arrayList.add(string);
        }
        intent.putExtra("List",arrayList);
        Log.d("开始跳转","...............");
        startActivity(intent);
    }

 

posted @ 2019-04-24 22:03  HEIYANG  阅读(141)  评论(0)    收藏  举报