Sqlite を使用して値を挿入しようとしていますが、テーブルへの挿入中に nullpointerException がスローされます。
これは私のDBクラスです:
public class FeedEntry extends SQLiteOpenHelper implements BaseColumns{
public static final String Table_Name = "Capture";
public static final String ColumnName_EmpCode = "EmpCode";
public static final String ColumnName_CallName = "CallName";
public static final String ColumnName_FirstName = "FirstName";
public static final String columnName_LastName = "LastName";
private static final String DATABASE_NAME = "Capture.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE = " create table "+Table_Name+"( "+ColumnName_EmpCode+" text, "
+ColumnName_CallName+" text);";// "+COLUMN_NAME_PASSWORD+ " text );";
public FeedEntry(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + Table_Name);
onCreate(db);
}
}
これは私のDAOクラスです:
public class CaptureDAO {
private static SQLiteDatabase dataBase;
private FeedEntry dbHelper = null;
private String[] allColumns = {FeedEntry.ColumnName_EmpCode, FeedEntry.ColumnName_CallName};
public CaptureDAO(Context context) {
dbHelper = new FeedEntry(context);
}
public void open() throws SQLException {
dataBase = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public static void empDetails(String empCode, String callName){
System.out.println("IN DAO CLASS "+empCode+" "+callName);
ContentValues values = new ContentValues();
System.out.println("In dao step 1");
values.put(FeedEntry.ColumnName_EmpCode, empCode);
System.out.println("In dao step 2");
values.put(FeedEntry.ColumnName_CallName, callName);
System.out.println("In dao step 3");
long insertId = dataBase.insert(FeedEntry.Table_Name, null, values);
System.out.println("InserId "+insertId);
//Cursor cursor = dataBase.query(FeedEntry.Table_Name, allColumns, FeedEntry.ColumnName_EmpCode+" = "+insertId, null, null, null, null);
}
}
アクティビティクラスで以下の行を使用して値を挿入しようとしています:
CaptureDAO.empDetails(empCode.getText().toString(), empName.getText().toString());
これは私のLogCatです:
02-13 05:42:59.295: E/AndroidRuntime(934): FATAL EXCEPTION: main
02-13 05:42:59.295: E/AndroidRuntime(934): java.lang.NullPointerException
02-13 05:42:59.295: E/AndroidRuntime(934): at
com.virinchi.capture.dao.CaptureDAO.empDetails(CaptureDAO.java:39)
02-13 05:42:59.295: E/AndroidRuntime(934): at com.virinchi.capture.captureDirectory.CaptureActivity.showEmployees(CaptureActivity.java:139)
02-13 05:42:59.295: E/AndroidRuntime(934): at com.virinchi.capture.bo.async.FetchEmployeeAsyncTask.onPostExecute(FetchEmployeeAsyncTask.java:101)
02-13 05:42:59.295: E/AndroidRuntime(934): at com.virinchi.capture.bo.async.FetchEmployeeAsyncTask.onPostExecute(FetchEmployeeAsyncTask.java:1)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.os.AsyncTask.finish(AsyncTask.java:631)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.os.AsyncTask.access$600(AsyncTask.java:177)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.os.Handler.dispatchMessage(Handler.java:99)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.os.Looper.loop(Looper.java:137)
02-13 05:42:59.295: E/AndroidRuntime(934): at android.app.ActivityThread.main(ActivityThread.java:5039)
02-13 05:42:59.295: E/AndroidRuntime(934): at java.lang.reflect.Method.invokeNative(Native Method)
02-13 05:42:59.295: E/AndroidRuntime(934): at java.lang.reflect.Method.invoke(Method.java:511)
02-13 05:42:59.295: E/AndroidRuntime(934): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-13 05:42:59.295: E/AndroidRuntime(934): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-13 05:42:59.295: E/AndroidRuntime(934): at dalvik.system.NativeStart.main(Native Method)