Java 无法连接到数据库(android上的SQLite)
我使用java以这种方式创建了db:Java 无法连接到数据库(android上的SQLite),java,android,sqlite,Java,Android,Sqlite,我使用java以这种方式创建了db: public static void main(String[] args) throws Exception { String CITIES[] = city.split(","); Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db"); String
public static void main(String[] args) throws Exception {
String CITIES[] = city.split(",");
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
String V[][] = {COUNTRIES,CITIES,occupations};
String []TypeNames = {"country","city","occupation"};
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists "+TABLE_NAME+";");
//stat.executeUpdate("create table "+TABLE_NAME+" (name, occupation);");
stat.executeUpdate("create table "+TABLE_NAME+" ("+VALUE+","+TYPE+","+LETTER+");");
PreparedStatement prep = conn.prepareStatement(
"insert into "+TABLE_NAME+" values (?, ?,?);");
//private void insertToTalble();
for(int j = 0 ;j < V.length; j++)
for (int i = 0 ;i < V[j].length ; i++)
{
Character c = V[j][i].charAt(0);
prep.setString(1, V[j][i]+"\n");
prep.setString(2, TypeNames[j]);
prep.setString(3, c.toString());
prep.addBatch();
}
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
rs.close();
conn.close();
}
}
我的问题似乎是清单文件:
当一个人获取一个db文件并将其导入到他的android项目时,他应该做什么?请分步骤解释我应该做什么,谢谢yoav。你们读过教程了吗
要查看设备上数据库中的内容,请使用“adb外壳”命令。从adb外壳,您可以使用sqlite3命令连接到数据库。可以找到其他信息我认为使用SQLiteOpenHelper在android中使用SQLite数据库是最简单的方法。你可以通过阅读来理解和应用。这非常有帮助,我遵循了它,而且效果很好。是的,我做到了,当我将java项目中的数据库添加到我自己的问题中时,问题似乎出现了。我导入数据库的原因是因为它需要很长的时间(对于dalvik来说,每次应用程序开始工作时,都要在db文件中插入6MB之类的内容是一项巨大的工作)。所以我设定了在我的项目之外制作一个应用程序的目标,它也将帮助我以后在谷歌云上构建我的应用程序?我不熟悉我应该在那里做的更改,你能不能深入了解这个主题?可能是b我一直在搜索的小丑卡…你的数据库必须包含android_元数据表创建表“android_元数据”(“locale”文本默认值“en_US”)你能在解释所有内容的anwser中显示它吗?1.我应该在哪里写“android_元数据”(“locale”文本默认为“en_US”)2.当我在我的项目中添加一个db时,我应该做些什么呢?我应该只绘制并放到他的eclipse目录中吗?还是应该做更多的工作呢?因为我已经有很长时间的问题了,我认识的人都不知道关于这个平台的一些事情。如果你有更多的问题,我想通过完成这个bug,我会完成这里已经解释过的骇人听闻的事情问题请随便问。
private static final String DB_PATH = "/data/data/com.countryCityGame/databases/test.db";
private static final String DATABASE_NAME = "test1.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "GameTable";
private static final String VALUE = "value";
private static final String TYPE = "type";
private static final String LETTER = "letter";
public countryCityGameLogic(EditText[] myEditTextArr , Context context){
this.context = context;
openHelper = new OpenHelper(context);
gameList = new CharSequence [myEditTextArr.length];
for (int i = 0 ; i < myEditTextArr.length; i++){
gameList[i] = myEditTextArr[i].getText();
}
this.db = openHelper.getWritableDatabase();
try{
String myPath = DB_PATH ;
SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}catch(SQLiteException e){
//database does't exist yet.
//insertValus(COUNTRIES,0);
}
//insertValus(COUNTRIES,0);
}
public void setGameVar(EditText[] myEditTextArr) {
for (int i = 0 ; i < myEditTextArr.length ;i++)
gameList[i] = myEditTextArr[i].getText();
}
private void insertValus(String []typeInserted , int num) {
ContentValues initialValues = new ContentValues();
for (int i = 0 ; i < typeInserted.length ; i++){
Character tmp = (Character)typeInserted[i].charAt(0);
initialValues.put(VALUE, typeInserted[i]);
initialValues.put(TYPE, TYPESNAMES[num]);
initialValues.put(LETTER,tmp.toString(tmp));
db.insert(TABLE_NAME, null, initialValues);
}
}
private static class OpenHelper extends SQLiteOpenHelper {
OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ( "+ VALUE +" TEXT,"+ TYPE +" TEXT, "+ LETTER + " TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
public boolean existInDataBase() {
boolean returnval = true;
String s = asUpperCaseFirstChar(gameList[0].toString());
Cursor cursor = db.query(TABLE_NAME, new String[] {VALUE}
,VALUE+" like " + "'%" + s +"%'", null, null, null, null);
if ( cursor.moveToFirst() == false)
returnval = false;
return returnval;
}
private void insertValus(String []typeInserted , int num);