zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    Docker 第一篇 认识Docker 的作用好处
    AspNetCoreApi 跨域处理
    VS 2017 发布:由于构建错误,发布失败
    iTerm2 cheatsheet (from github)
    find命令:忽略一个目录或者多个目录
    git push throws error: RPC failed; result=22, HTTP code = 411的解决办法
    sourceTree 一款图形化GIT工具
    生产力工具之vimwiki 和 calendar
    source : not found 原因及解决办法
    亚马逊开放机器学习系统源代码:挑战谷歌TensorFlow
  • 原文地址:https://www.cnblogs.com/heiyang/p/10776906.html
Copyright © 2011-2022 走看看