/**
* author : lipan
* filename : TestDb.java
* create_time : 2014年8月23日 下午5:33:06
*/
package com.sets.speedtest.db;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Locale;
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.test.AndroidTestCase;
import android.util.Log;
import com.sets.speedtest.R;
/**
* @author : lipan
* @create_time : 2014年8月23日 下午5:33:06
* @desc : db测试类
* @update_person:
* @update_time :
* @update_desc :
*
*/
@SuppressLint("SdCardPath")
public class TestDb extends AndroidTestCase
{
public void testLoadDb() throws Exception
{
// Context context = getContext();
// // 打开静态数据库文件的输入流
// InputStream is = context.getResources().openRawResource(R.raw.init);
// // 通过Context类来打开目标数据库文件的输出流,这样可以避免将路径写死。
// FileOutputStream os =
// context.openFileOutput("init.db",Context.MODE_PRIVATE);
// byte[] buffer = new byte[1024];
// int count = 0;
// // 将静态数据库文件拷贝到目的地
// while ((count = is.read(buffer)) > 0) {
// os.write(buffer, 0, count);
// }
// is.close();
// os.close();
// 静态资源数据库
// SQLiteDatabase baseDb =
// SQLiteDatabase.openDatabase("/data/data/com.sets.speedtest/files/init.db",
// null,
// SQLiteDatabase.OPEN_READONLY);
// Cursor rawQuery =
// baseDb.rawQuery("select count(*) from campus",null);
// rawQuery.moveToFirst();
// System.out.println(rawQuery.getInt(0));
openDatabase();
// Cursor query = database.query("campus", null, null, null, null, null, null);
// if (query.moveToNext())
// {
// System.out.println(query.getInt(0));
// }
// database.execSQL("CREATE TABLE android_metadata (locale TEXT DEFAULT 'zh_CN')");
Cursor cursor = database.query("CAMPUS", new String[]{"count(*)"} , null, null, null, null, null);
cursor.moveToFirst();
long count = cursor.getLong(0);
}
private final int BUFFER_SIZE = 400000;
public static final String DB_NAME = "init.db"; // 保存的数据库文件名
public static final String PACKAGE_NAME = "com.sets.speedtest";// 包名
public static final String DB_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath()
+ "/" + PACKAGE_NAME +"/files"; // 在手机里存放数据库的位置
private SQLiteDatabase database;
public void openDatabase()
{
this.database = this.openDatabase(DB_PATH + "/" + DB_NAME);
}
private SQLiteDatabase openDatabase(String dbfile)
{
try
{
if (!(new File(dbfile).exists()))
{// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
Context context = getContext();
// 打开静态数据库文件的输入流
InputStream is = context.getResources().openRawResource(R.raw.init);
// 通过Context类来打开目标数据库文件的输出流,这样可以避免将路径写死。
FileOutputStream os = context.openFileOutput("init.db", Context.MODE_PRIVATE);
byte[] buffer = new byte[1024];
int count = 0;
// 将静态数据库文件拷贝到目的地
while ((count = is.read(buffer)) > 0)
{
os.write(buffer, 0, count);
}
is.close();
os.close();
}
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
return db;
} catch (FileNotFoundException e)
{
// Log.e("Database", "File not found");
e.printStackTrace();
} catch (Exception e)
{
// Log.e("Database", "IO exception");
e.printStackTrace();
}
return null;
}
public void testCampusDao()
{
// CampusDao dao = new CampusDao(DBOpenManager.getInstance().getBaseDb());
// SparseArray<Campus> campusList = dao.getCampusList("BJ");
// System.out.println(campusList.size());
}
public void testDate()
{
Calendar calendar = Calendar.getInstance(Locale.CHINA);
Log.i("now date",calendar.getTime().toString());
Log.i("now date",calendar.getTimeInMillis()+"");
}
}