第一阶段个人冲刺博客第九天
今天将数据库连接成功,并在模拟器上成功实现了空教室查询功能,下面附上代码和截图。
private View.OnClickListener SearchFloorListener=new View.OnClickListener() { @Override public void onClick(View v) { GetDATA(); } }; public void GetDATA() { // com.test.db 是程序的包名,请根据自己的程序调整 // /data/data/com.test.db/ // databases 目录是准备放 SQLite 数据库的地方,也是 Android 程序默认的数据库存储目录 // 数据库名为 test.db String DB_PATH = "/data/data/com.example.superman.test/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 where teacher='基教'", 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(); ArrayList<String> arrayList=new ArrayList<String>(); String string=null; for(int i=0;i<list.size();i++) { string=list.get(i).getName()+"-"+list.get(i).getTeacher()+"-"+list.get(i).getPrice(); arrayList.add(string); } tableLayout=findViewById(R.id.BuildingTable); //清除表格所有行 tableLayout.removeAllViews(); //全部列自动填充空白处 tableLayout.setStretchAllColumns(true); for(int i=0;i<arrayList.size();i++) { TableRow tableRow=new TableRow(this); //tv用于显示 TextView tv=new TextView(this); tv.setHeight(300); tv.setText(arrayList.get(i).toString()); tableRow.addView(tv); tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1)); } } }