无法在Android中打开数据库(预创建)
我已经将我的sqlite数据库文件放在“assets”文件夹中,并且我编写了一个DataManager类来从数据库中获取数据,但是我得到了运行时错误。。我使用调试工具查看在无法在Android中打开数据库(预创建),android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我已经将我的sqlite数据库文件放在“assets”文件夹中,并且我编写了一个DataManager类来从数据库中获取数据,但是我得到了运行时错误。。我使用调试工具查看在CreateDataBase()错误引发时确切了解的位置。。请帮我解决这个问题 这是我的Datamanager类。我正在为android预创建数据库,但我得到文件未找到异常,请帮助我。我已经在下面显示了我的日志 (数据管理器类) 日志: 11-30 16:02:18.908: E/SQLiteLog(968): (14) ca
CreateDataBase()
错误引发时确切了解的位置。。请帮我解决这个问题
这是我的Datamanager类。我正在为android预创建数据库,但我得到文件未找到异常,请帮助我。我已经在下面显示了我的日志
(数据管理器类)
日志:
11-30 16:02:18.908: E/SQLiteLog(968): (14) cannot open file at line 30176 of [00bb9c9ce4]
11-30 16:02:18.938: E/SQLiteLog(968): (14) os_unix.c:30176: (2) open(/data/data/com.example.applicationdatabase/databasesdatabase) -
11-30 16:02:18.948: E/SQLiteDatabase(968): Failed to open database '/data/data/com.example.applicationdatabase/databasesdatabase'.
11-30 16:02:18.948: E/SQLiteDatabase(968): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.checkDataBase(DataBaseManager.java:102)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.createDataBase(DataBaseManager.java:69)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.<init>(DataBaseManager.java:39)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.instance(DataBaseManager.java:55)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DBActivity.onCreate(DBActivity.java:35)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.Activity.performCreate(Activity.java:5104)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.os.Looper.loop(Looper.java:137)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:18.948: E/SQLiteDatabase(968): at java.lang.reflect.Method.invokeNative(Native Method)
11-30 16:02:18.948: E/SQLiteDatabase(968): at java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:18.948: E/SQLiteDatabase(968): at dalvik.system.NativeStart.main(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): FATAL EXCEPTION: main
11-30 16:02:19.008: E/AndroidRuntime(968): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.applicationdatabase/com.example.applicationdatabase.DBActivity}: java.lang.NullPointerException
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.os.Looper.loop(Looper.java:137)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:19.008: E/AndroidRuntime(968): at java.lang.reflect.Method.invokeNative(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): at java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:19.008: E/AndroidRuntime(968): at dalvik.system.NativeStart.main(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): Caused by: java.lang.NullPointerException
11-30 16:02:19.008: E/AndroidRuntime(968): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.createDataBase(DataBaseManager.java:79)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.<init>(DataBaseManager.java:39)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.instance(DataBaseManager.java:55)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DBActivity.onCreate(DBActivity.java:35)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.Activity.performCreate(Activity.java:5104)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-30 16:02:19.008: E/AndroidRuntime(968): ... 11 more
11-30 16:02:18.908:E/SQLiteLog(968):(14)无法打开[00bb9c9ce4]第30176行的文件
11-30 16:02:18.938:E/SQLiteLog(968):(14)os_unix.c:30176:(2)打开(/data/data/com.example.applicationdatabase/databasesdatabase)-
11-30 16:02:18.948:E/SQLiteDatabase(968):无法打开数据库“/data/data/com.example.applicationdatabase/databasesdatabase”。
11-30 16:02:18.948:E/SQLiteDatabase(968):android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnection.nativeOpen(本机方法)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.example.applicationdatabase.DataBaseManager.checkDataBase(DataBaseManager.java:102)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.example.applicationdatabase.DataBaseManager.createDataBase(DataBaseManager.java:69)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.example.applicationdatabase.DataBaseManager.(DataBaseManager.java:39)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.example.applicationdatabase.DataBaseManager.instance(DataBaseManager.java:55)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.example.applicationdatabase.DBActivity.onCreate(DBActivity.java:35)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.Activity.performCreate(Activity.java:5104)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.os.Looper.loop(Looper.java:137)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于java.lang.reflect.Method.invokenactive(本机方法)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:18.948:E/SQLiteDatabase(968):位于dalvik.system.NativeStart.main(本机方法)
11-30 16:02:19.008:E/AndroidRuntime(968):致命异常:主
11-30 16:02:19.008:E/AndroidRuntime(968):java.lang.RuntimeException:无法启动活动组件信息{com.example.applicationdatabase/com.example.applicationdatabase.DBActivity}:java.lang.NullPointerException
11-30 16:02:19.008:E/AndroidRuntime(968):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-30 16:02:19.008:E/AndroidRuntime(968):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:19.008:E/AndroidRuntime(968):在android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:19.008:E/AndroidRuntime(968):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:19.008:E/AndroidRuntime(968):位于android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:19.008:E/AndroidRuntime(968):在android.os.Looper.loop(Looper.java:137)
11-30 16:02:19.008:E/AndroidRuntime(968):位于android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:19.008:E/AndroidRuntime(968):位于java.lang.reflect.Method.Invokenactive(本机方法)
11-30 16:02:19.008:E/AndroidRuntime(968):在java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:19.008:E/AndroidRuntime(968):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:19.008:E/AndroidRuntime(968):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:19.008:E/AndroidRuntime(968):在dalvik.system.NativeSta
11-30 16:02:18.908: E/SQLiteLog(968): (14) cannot open file at line 30176 of [00bb9c9ce4]
11-30 16:02:18.938: E/SQLiteLog(968): (14) os_unix.c:30176: (2) open(/data/data/com.example.applicationdatabase/databasesdatabase) -
11-30 16:02:18.948: E/SQLiteDatabase(968): Failed to open database '/data/data/com.example.applicationdatabase/databasesdatabase'.
11-30 16:02:18.948: E/SQLiteDatabase(968): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.checkDataBase(DataBaseManager.java:102)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.createDataBase(DataBaseManager.java:69)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.<init>(DataBaseManager.java:39)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DataBaseManager.instance(DataBaseManager.java:55)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.example.applicationdatabase.DBActivity.onCreate(DBActivity.java:35)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.Activity.performCreate(Activity.java:5104)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.os.Looper.loop(Looper.java:137)
11-30 16:02:18.948: E/SQLiteDatabase(968): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:18.948: E/SQLiteDatabase(968): at java.lang.reflect.Method.invokeNative(Native Method)
11-30 16:02:18.948: E/SQLiteDatabase(968): at java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:18.948: E/SQLiteDatabase(968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:18.948: E/SQLiteDatabase(968): at dalvik.system.NativeStart.main(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): FATAL EXCEPTION: main
11-30 16:02:19.008: E/AndroidRuntime(968): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.applicationdatabase/com.example.applicationdatabase.DBActivity}: java.lang.NullPointerException
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.os.Looper.loop(Looper.java:137)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.main(ActivityThread.java:5039)
11-30 16:02:19.008: E/AndroidRuntime(968): at java.lang.reflect.Method.invokeNative(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): at java.lang.reflect.Method.invoke(Method.java:511)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-30 16:02:19.008: E/AndroidRuntime(968): at dalvik.system.NativeStart.main(Native Method)
11-30 16:02:19.008: E/AndroidRuntime(968): Caused by: java.lang.NullPointerException
11-30 16:02:19.008: E/AndroidRuntime(968): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.createDataBase(DataBaseManager.java:79)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.<init>(DataBaseManager.java:39)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DataBaseManager.instance(DataBaseManager.java:55)
11-30 16:02:19.008: E/AndroidRuntime(968): at com.example.applicationdatabase.DBActivity.onCreate(DBActivity.java:35)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.Activity.performCreate(Activity.java:5104)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-30 16:02:19.008: E/AndroidRuntime(968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-30 16:02:19.008: E/AndroidRuntime(968): ... 11 more
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "mydb.sqlite";
protected Context context;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
String sqlStatement;
try {
InputStream in = context.getResources().openRawResource(R.raw.mydbqueries);
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(in, null);
NodeList statements = doc.getElementsByTagName("statement");
for (int i=0; i<statements.getLength(); i++) {
sqlStatement = statements.item(i).getChildNodes().item(0).getNodeValue();
db.execSQL(sqlStatement);
}
} catch (Throwable t) {
}
}
SQLiteDatabase sqliteDB = null;
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
public SQLiteDatabase open() throws SQLException
{
sqliteDB = this.getWritableDatabase();
return sqliteDB;
}
}
<?xml version="1.0" encoding="UTF-8"?><!-- <?xml version="1.0" encoding="utf-8"?> -->
<!-- database queries -->
<sql>
<!-- Meta data table -->
<!-- <statement> CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT
'en_US') </statement> Meta data table <statement> INSERT INTO "android_metadata"
VALUES('en_US') </statement> -->
<statement>
sql statement
</statement>
</sql>
package net.learn2develop.Databases;
import java.io.IOException;
import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class DatabasesActivity extends Activity {
protected static final String TAG = null;
private Button insertButton;
private Button updateButton;
private Button deleteButton;
private Button displayButton;
boolean status = false;
private EditText name;
private EditText email;
protected int value1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter myDbHelper = new DBAdapter(null);
myDbHelper = new DBAdapter(this);
insertButton = (Button) findViewById(R.id.btnInsert);
updateButton = (Button) findViewById(R.id.btnUpdate);
deleteButton = (Button) findViewById(R.id.btnDelete);
displayButton = (Button) findViewById(R.id.btnDisplay);
name = (EditText) findViewById(R.id.edit_name);
email = (EditText) findViewById(R.id.edit_email);
// --- inserting ------
insertButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (name.getText().toString().trim().length() == 0)
{
Toast msg = Toast.makeText(getBaseContext(),
"Please Enter Name ", Toast.LENGTH_LONG);
msg.show();
}
else if (email.getText().toString().trim().length() == 0)
{
Toast msg = Toast.makeText(getBaseContext(),
"Please Enter Email", Toast.LENGTH_LONG);
msg.show();
}
else
insertRecord();
}
});
// --------Deleting the Records -----------
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
deleteRecord();
}
});
// --- Displaying the Records -------
displayButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DisplayRecord();
}
});
updateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (name.getText().toString().trim().length() == 0)
{
Toast msg = Toast.makeText(getBaseContext(),
"Please Enter Name ", Toast.LENGTH_LONG);
msg.show();
}
else if (email.getText().toString().trim().length() == 0)
{
Toast msg = Toast.makeText(getBaseContext(),
"Please Enter Email", Toast.LENGTH_LONG);
msg.show();
}
else
{
updateRecord();
}
}
});
try {
myDbHelper.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelper.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
}
protected void DisplayRecord() {
DBAdapter myDbHelper1 = new DBAdapter(null);
myDbHelper1.openDataBase();
Cursor c = myDbHelper1.getAllContacts();
if (c.moveToFirst()) {
do {
DisplayContact(c);
} while (c.moveToNext());
}
myDbHelper1.close();
}
protected void updateRecord() {
String Name = fetchName();
String Email = fetchEmail();
DBAdapter myDbHelper1 = new DBAdapter(null);
myDbHelper1.openDataBase();
if (myDbHelper1.updateContact(1, Name, Email))
{
Toast msg = Toast.makeText(getBaseContext(),
"Update Successfully ", Toast.LENGTH_LONG);
msg.show();
}
else
{
Toast msg = Toast.makeText(getBaseContext(),
"Update Failed ", Toast.LENGTH_LONG);
msg.show();
}
myDbHelper1.close();
}
protected void deleteRecord() {
DBAdapter myDbHelper1 = new DBAdapter(null);
myDbHelper1.openDataBase();
if (myDbHelper1.deleteContact(27))
{
Toast msg = Toast.makeText(getBaseContext(),
"Delete Successfully ", Toast.LENGTH_LONG);
msg.show();
}
else
{
Toast msg = Toast.makeText(getBaseContext(),
"Delete Failed ", Toast.LENGTH_LONG);
msg.show();
}
myDbHelper1.close();
}
protected void insertRecord() {
String Name = fetchName();
String Email = fetchEmail();
DBAdapter myDbHelper1 = new DBAdapter(null);
myDbHelper1.openDataBase();
long id = myDbHelper1.insertContact(Name, Email);
myDbHelper1.close();
Toast msg = Toast.makeText(getBaseContext(),
"Record: " + id + " Successfully inserted", Toast.LENGTH_LONG);
msg.show();
name.setText("");
email.setText("");
}
public void DisplayContact(Cursor c) {
Toast.makeText(
this,
"id: " + c.getString(0) + "\n" + "Name: " + c.getString(1)
+ "\n" + "Email: " + c.getString(2), Toast.LENGTH_LONG)
.show();
}
public String fetchName()
{
String Name = name.getText().trim().toString();
if (Name.contentEquals(name.getHint()))
{
return " ";
}
else
{
return Name;
}
}
public String fetchEmail()
{
String Email = email.getText().trim().toString();
if (Email.contentEquals(email.getHint()))
{
return " ";
}
else
{
return Email;
}
}
}
SQLiteDatabase db;
db = getWritableDatabase();
if (db != null) {
b.close();
}
copyDatabase();