SQLiteDatabase.rawQuery(java.lang.String中,java.lang.String中[])在空对象引用“ [英] SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference

查看:1811
本文介绍了SQLiteDatabase.rawQuery(java.lang.String中,java.lang.String中[])在空对象引用“的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在访问数据库中的 NullPointerException异常被抛出。

下面是创建数据库的code:

 公共类DatabaseHelper扩展SQLiteOpenHelper {    公共静态最后弦乐KEY_CREATE_TABLE =CREATE TABLE IF NOT EXISTS {0}({1});
    公共静态最后弦乐KEY_DROP_TABLE =DROP TABLE IF EXISTS {0};    私人上下文的背景下;
    活动℃;
    私有静态最终诠释CURRENT_DB_VERSION = 1;
    私有静态最后弦乐DB_NAME =vrochat.db;SQLiteDatabase DB1;
    公共DatabaseHelper(上下文的背景下){
        超(背景下,DB_NAME,空,CURRENT_DB_VERSION);
        this.context =背景;    }    @覆盖
    公共无效的onCreate(SQLiteDatabase DB){
        createUserTable(DB);
        createMessageTable(DB);
        createDialogTable(DB);
// // //拉吉
        createTimelineTable(DB);
        createNewsFeedTable(DB);
        createProfileTable(DB);
        createProfilemediaListTable(DB);
        createFriendinfoTable(DB);
        //参孙
        createMultiImagePostTable(DB);
        //        this.Db1 = DB;
    }
    私人无效createMultiImagePostTable(SQLiteDatabase DB){
        // TODO自动生成方法存根        StringBuilder的MultiImagePostTablefields =新的StringBuilder();
        MultiImagePostTablefields.append(MultiImagePostTable.Cols.ID)
                .append(INTEGER PRIMARY KEY)
                .append(MultiImagePostTable.Cols.IMAGE).append(TEXT)
                .append(MultiImagePostTable.Cols.IMAGE_CREATED_AT).append(TEXT)
                .append(MultiImagePostTable.Cols.IMAGE_THUMB).append(TEXT)
                .append(MultiImagePostTable.Cols.POST_ID).append(文本);
        CREATETABLE(DB,MultiImagePostTable.TABLE_NAME,
                MultiImagePostTablefields.toString());    }
    私人无效createUserTable(SQLiteDatabase DB){
        StringBuilder的userTableFields =新的StringBuilder();
        userTableFields.append(UserTable.Cols.ID)
                .append(INTEGER PRIMARY KEY AUTOINCREMENT)
                .append(UserTable.Cols.USER_ID).append(INTEGER)
                .append(UserTable.Cols.FULL_NAME).append(TEXT)
                .append(UserTable.Cols.EMAIL).append(TEXT)
                .append(UserTable.Cols.LOGIN).append(TEXT)
                .append(UserTable.Cols.PHONE)
                .append(TEXT)
                .append(UserTable.Cols.WEB_SITE)
                .append(TEXT)
                .append(UserTable.Cols.CUSTOM_DATA)
                .append(TEXT)
                .append(UserTable.Cols.LAST_REQUEST_AT)
                .append(TEXT)
                .append(UserTable.Cols.EXTERNAL_ID)
                .append(TEXT)
                        // .append(UserTable.Cols.FACEBOOK_ID).append(INTEGER)
                        // .append(UserTable.Cols.TWITTER_ID).append(INTEGER)
                .append(UserTable.Cols.BLOB_ID).append(INTEGER)
                .append(UserTable.Cols.AVATAR_URL).append(TEXT)
                .append(UserTable.Cols.STATUS).append(TEXT)
                .append(UserTable.Cols.IS_ONLINE).append(整数);
        CREATETABLE(分贝,UserTable.TABLE_NAME,userTableFields.toString());
    }    私人无效createMessageTable(SQLiteDatabase DB){
        StringBuilder的messageTableFields =新的StringBuilder();
        messageTableFields.append(MessageTable.Cols.ID)
                .append(INTEGER PRIMARY KEY)
                .append(MessageTable.Cols.MESSAGE_ID).append(TEXT UNIQUE)
                .append(MessageTable.Cols.DIALOG_ID).append(TEXT)
                .append(MessageTable.Cols.SENDER_ID).append(INTEGER)
                .append(MessageTable.Cols.BODY).append(TEXT)
                .append(MessageTable.Cols.TIME).append(LONG)
                .append(MessageTable.Cols.ATTACH_FILE_ID).append(TEXT)
                .append(MessageTable.Cols.ATTACH_TYPE).append(TEXT)
                .append(MessageTable.Cols.IS_READ).append(INTEGER)
                .append(MessageTable.Cols.IS_DELIVERED).append(INTEGER)
                .append(MessageTable.Cols.IS_SYNC).append(INTEGER)
                .append(MessageTable.Cols.FRIENDS_NOTIFICATION_TYPE)
                .append(整数);
        CREATETABLE(分贝,MessageTable.TABLE_NAME,messageTableFields.toString());
    }    私人无效createDialogTable(SQLiteDatabase DB){
        StringBuilder的dialogTableFields =新的StringBuilder();
        dialogTableFields.append(DialogTable.Cols.ID)
                .append(INTEGER PRIMARY KEY AUTOINCREMENT)
                .append(DialogTable.Cols.DIALOG_ID).append(TEXT)
                .append(DialogTable.Cols.ROOM_JID_ID).append(TEXT)
                .append(DialogTable.Cols.NAME).append(TEXT)
                .append(DialogTable.Cols.COUNT_UNREAD_MESSAGES)
                .append(INTEGER).append(DialogTable.Cols.LAST_MESSAGE)
                .append(TEXT)
                .append(DialogTable.Cols.LAST_MESSAGE_USER_ID)
                .append(LONG).append(DialogTable.Cols.LAST_DATE_SENT)
                .append(LONG).append(DialogTable.Cols.OCCUPANTS_IDS)
                .append(TEXT).append(DialogTable.Cols.PHOTO_URL)
                .append(TEXT).append(DialogTable.Cols.VROId)
                .append(TEXT).append(DialogTable.Cols.TYPE)
                .append(整数);
        CREATETABLE(分贝,DialogTable.TABLE_NAME,dialogTableFields.toString());
    }    @覆盖
    公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
        DROPTABLE(DB,UserTable.TABLE_NAME);
        DROPTABLE(DB,MessageTable.TABLE_NAME);
        DROPTABLE(DB,DialogTable.TABLE_NAME);
        的onCreate(DB);
    }    公共无效DROPTABLE(SQLiteDatabase分贝,字符串名称){
        查询字符串= MessageFormat
                .format(DatabaseHelper.KEY_DROP_TABLE,名);
        db.execSQL(查询);
    }    公共无效CREATETABLE(SQLiteDatabase分贝,字符串名称,字符串字段){
        查询字符串= MessageFormat.format(DatabaseHelper.KEY_CREATE_TABLE,
                名,字段);
        db.execSQL(查询);
    }    // ///////////////拉吉
    私人无效createProfilemediaListTable(SQLiteDatabase DB){
        // TODO自动生成方法存根
        StringBuilder的ProfileMediaListTablefields =新的StringBuilder();
        ProfileMediaListTablefields.append(ProfileMedialistTable.Cols.ID)
                .append(INTEGER PRIMARY KEY AUTOINCREMENT)
                .append(ProfileMedialistTable.Cols.USERID).append(INTEGER)
                .append(ProfileMedialistTable.Cols.IMAGETHUMB)
                .append(TEXT).append(ProfileMedialistTable.Cols.IMAGEURL)
                .append(TEXT).append(ProfileMedialistTable.Cols.TYPE)
                .append(文本);
        CREATETABLE(DB,ProfileMedialistTable.TABLE_NAME,
                ProfileMediaListTablefields.toString());    }    私人无效createProfileTable(SQLiteDatabase DB){
        // TODO自动生成方法存根
        StringBuilder的ProfileTableFields =新的StringBuilder();
        ProfileTableFields.append(ProfileTable.Cols.ABOUT).append(TEXT)
                .append(ProfileTable.Cols.CHANNELCOUNT).append(TEXT)
                .append(ProfileTable.Cols.CITY).append(TEXT)
                .append(ProfileTable.Cols.COLLEGEAT).append(TEXT)
                .append(ProfileTable.Cols.COUNTRY)
                .append(TEXT)
                .append(ProfileTable.Cols.DOB)
                .append(TEXT)
                .append(ProfileTable.Cols.EMAIL)
                .append(TEXT)
                .append(ProfileTable.Cols.FIRSTNAME)
                .append(TEXT)
                .append(ProfileTable.Cols.FRIENDSCOUNT)
                .append(TEXT)
                .append(ProfileTable.Cols.FRIENDSHIPSTATUS)
                .append(TEXT)
                .append(ProfileTable.Cols.GENDER)
                .append(TEXT)
                .append(ProfileTable.Cols.HOBBY)
                .append(TEXT)
                .append(ProfileTable.Cols.IMAGECOUNT)
                .append(TEXT)
                .append(ProfileTable.Cols.INTERESTS)
                .append(TEXT)
                .append(ProfileTable.Cols.LASTNAME)
                .append(TEXT)
                        // .append(ProfileTable.Cols.MEDIALIST).append(TEXT)
                .append(ProfileTable.Cols.MEMBERSINCE).append(TEXT)
                .append(ProfileTable.Cols.PRIVACY).append(TEXT)
                .append(ProfileTable.Cols.PROFILEPICURL).append(TEXT)
                .append(ProfileTable.Cols.QBID).append(TEXT)
                .append(ProfileTable.Cols.RELATIONSHIPSTATUS).append(TEXT)
                .append(ProfileTable.Cols.SCHOOLAT).append(TEXT)
                .append(ProfileTable.Cols.STATE).append(TEXT)
                .append(ProfileTable.Cols.TIMELINEPIC).append(TEXT)
                .append(ProfileTable.Cols.USERID)
                .append(INTEGER PRIMARY KEY)
                .append(ProfileTable.Cols.USERNAME).append(TEXT)
                .append(ProfileTable.Cols.VIDEOCOUNT).append(TEXT)
                .append(ProfileTable.Cols.WORKSAT).append(文本);
        CREATETABLE(分贝,ProfileTable.TABLE_NAME,ProfileTableFields.toString());    }    私人无效createNewsFeedTable(SQLiteDatabase DB){
        // TODO自动生成方法存根        StringBuilder的Ne​​wsFeedTableFields =新的StringBuilder();
        NewsFeedTableFields.append(TimelineTable.Cols.ID).append(INTEGER)
                .append(NewsFeedTable.Cols.VROID).append(INTEGER)
                .append(NewsFeedTable.Cols.FIRST_NAME).append(TEXT)
                .append(NewsFeedTable.Cols.LAST_NAME).append(TEXT)
                .append(NewsFeedTable.Cols.POST_TITLE).append(TEXT)
                .append(NewsFeedTable.Cols.POST_CONTENT).append(TEXT)
                .append(NewsFeedTable.Cols.POST_TYPE).append(TEXT)
                .append(NewsFeedTable.Cols.POST_IMAGEURL).append(TEXT)
                .append(NewsFeedTable.Cols.POST_IMAGEURL_THUMB)
                .append(TEXT).append(NewsFeedTable.Cols.POST_VIDEOURL)
                .append(TEXT).append(NewsFeedTable.Cols.POST_CREATED)
                .append(TEXT).append(NewsFeedTable.Cols.POST_UPDATED)
                .append(TEXT).append(NewsFeedTable.Cols.LIKE_COUNT)
                .append(INTEGER).append(NewsFeedTable.Cols.COMMENT_COUNT)
                .append(INTEGER).append(NewsFeedTable.Cols.SHARE_COUNT)
                .append(INTEGER).append(NewsFeedTable.Cols.IS_MY_POST)
                .append(TEXT).append(NewsFeedTable.Cols.IS_SHARED)
                .append(TEXT).append(NewsFeedTable.Cols.IS_LIKED)
                .append(TEXT)
                .append(NewsFeedTable.Cols.FROM_USER_FIRSTNAME)
                .append(TEXT).append(NewsFeedTable.Cols.FROM_USER_ID)
                .append(TEXT)
                .append(NewsFeedTable.Cols.FROM_USER_LAST_NAME)
                .append(TEXT)
                .append(NewsFeedTable.Cols.FROM_USER_PROFILE_PIC)
                .append(TEXT)
                .append(NewsFeedTable.Cols.TO_USER_FIRST_NAME)
                .append(TEXT).append(NewsFeedTable.Cols.TO_USER_LAST_NAME)
                .append(TEXT)
                .append(NewsFeedTable.Cols.TO_USER_PROFILE_PIC)
                .append(TEXT).append(NewsFeedTable.Cols.USERS_POSTID)
                .append(INTEGER PRIMARY KEY)
                .append(NewsFeedTable.Cols.YOUTUBE_VIDEO_URL).append(TEXT)
                .append(NewsFeedTable.Cols.POST__VIDEO_URL_THUMB)
                .append(文本);
        CREATETABLE(DB,NewsFeedTable.TABLE_NAME,
                NewsFeedTableFields.toString());    }    私人无效createTimelineTable(SQLiteDatabase DB){
        // TODO自动生成方法存根
        StringBuilder的timeLineTableFields =新的StringBuilder();
        timeLineTableFields.append(TimelineTable.Cols.ID).append(INTEGER)
                .append(TimelineTable.Cols.VROID).append(INTEGER)
                .append(TimelineTable.Cols.FIRST_NAME).append(TEXT)
                .append(TimelineTable.Cols.LAST_NAME).append(TEXT)
                .append(TimelineTable.Cols.POST_TITLE).append(TEXT)
                .append(TimelineTable.Cols.POST_CONTENT).append(TEXT)
                .append(TimelineTable.Cols.POST_TYPE).append(TEXT)
                .append(TimelineTable.Cols.POST_IMAGEURL).append(TEXT)
                .append(TimelineTable.Cols.POST_IMAGEURL_THUMB)
                .append(TEXT).append(TimelineTable.Cols.POST_VIDEOURL)
                .append(TEXT).append(TimelineTable.Cols.POST_CREATED)
                .append(TEXT).append(TimelineTable.Cols.POST_UPDATED)
                .append(TEXT).append(TimelineTable.Cols.LIKE_COUNT)
                .append(INTEGER).append(TimelineTable.Cols.COMMENT_COUNT)
                .append(INTEGER).append(TimelineTable.Cols.SHARE_COUNT)
                .append(INTEGER).append(TimelineTable.Cols.IS_MY_POST)
                .append(TEXT).append(TimelineTable.Cols.IS_SHARED)
                .append(TEXT).append(TimelineTable.Cols.IS_LIKED)
                .append(TEXT)
                .append(TimelineTable.Cols.FROM_USER_FIRSTNAME)
                .append(TEXT).append(TimelineTable.Cols.FROM_USER_ID)
                .append(TEXT)
                .append(TimelineTable.Cols.FROM_USER_LAST_NAME)
                .append(TEXT)
                .append(TimelineTable.Cols.FROM_USER_PROFILE_PIC)
                .append(TEXT)
                .append(TimelineTable.Cols.TO_USER_FIRST_NAME)
                .append(TEXT).append(TimelineTable.Cols.TO_USER_LAST_NAME)
                .append(TEXT)
                .append(TimelineTable.Cols.TO_USER_PROFILE_PIC)
                .append(TEXT).append(TimelineTable.Cols.USERS_POSTID)
                .append(INTEGER PRIMARY KEY)
                .append(TimelineTable.Cols.YOUTUBE_VIDEO_URL).append(TEXT)
                .append(TimelineTable.Cols.POST__VIDEO_URL_THUMB)
                .append(文本);
        CREATETABLE(DB,TimelineTable.TABLE_NAME,
                timeLineTableFields.toString());    }    私人无效createFriendinfoTable(SQLiteDatabase DB){
        // TODO自动生成方法存根        StringBuilder的FriendInfoTablefields =新的StringBuilder();
        FriendInfoTablefields.append(FriendinfoTable.Cols.ID)
                .append(INTEGER PRIMARY KEY)
                .append(FriendinfoTable.Cols.FIRST_NAME).append(TEXT)
                .append(FriendinfoTable.Cols.LAST_NAME).append(TEXT)
                .append(FriendinfoTable.Cols.USER_NAME).append(TEXT)
                .append(FriendinfoTable.Cols.EMAIL).append(TEXT)
                .append(FriendinfoTable.Cols.USER_PROFILE_PIC)
                .append(TEXT)
                .append(FriendinfoTable.Cols.USER_TIMELINE_PIC)
                .append(TEXT).append(FriendinfoTable.Cols.COUNTRY)
                .append(TEXT).append(FriendinfoTable.Cols.STATE)
                .append(TEXT).append(FriendinfoTable.Cols.CITY)
                .append(TEXT).append(FriendinfoTable.Cols.ABOUT)
                .append(TEXT).append(FriendinfoTable.Cols.GENDER)
                .append(TEXT).append(FriendinfoTable.Cols.DATEOFBIRTH)
                .append(TEXT)
                .append(FriendinfoTable.Cols.FRIENDSHIP_STATUS)
                .append(TEXT).append(FriendinfoTable.Cols.QUICKBLOX_ID)
                .append(文本);
        CREATETABLE(DB,FriendinfoTable.TABLE_NAME,
                FriendInfoTablefields.toString());    }    // aswathy公共无效getfriendsdata()
{    光标C = Db1.rawQuery(SELECT * FROM friendinfotable,NULL);    尝试
    {
        //把光标放在第一个位置
        c.moveToFirst();        //获取从光标中的所有记录,直至到达最后一条记录
        而(!c.isAfterLast())
        {
                / *
                 *在屏幕上显示的记录
                 *注:这里的光标有两列。
                 *所以,要小心,而取的记录。
                 *如果没有列是存在的,它会给你例外
                 * /
            Toast.makeText(上下文,c.getString(0)++ c.getString(1),Toast.LENGTH_SHORT).show();            //光标移动到下一个记录
            c.moveToNext();
        }
        //关闭游标
        c.close();
    }赶上(例外五)
    {
        Log.d(错误,错误光标);
        e.printStackTrace();
    }}

这是它是如何调用的:

 公共类FindPeopleFragment扩展BaseFragment {
....
  私人无效loadMoreData(){
DatabaseHelper DH =新DatabaseHelper(getActivity());
                dh.getfriendsdata();
}
}

下面是logcat的输出,显示了异常:

 显示java.lang.NullPointerException:尝试调用虚拟方法android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String中,java.lang.String中[]在以低于行空对象引用)
光标C = Db1.rawQuery(SELECT * FROM friendinfotable,NULL);


解决方案

看起来的onCreate 运行 getfriendsdata(以前不叫); 。因为 DB1 的onCreate只有当初始化()

您必须调用光标C = getReadableDatabase()rawQuery(SELECT * FROM friendinfotable,NULL);

When accessing the database a NullPointerException is thrown.

Here is the code that creates the db:

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String KEY_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS {0} ({1})";
    public static final String KEY_DROP_TABLE = "DROP TABLE IF EXISTS {0}";

    private Context context;
    Activity C;
    private static final int CURRENT_DB_VERSION = 1;
    private static final String DB_NAME = "vrochat.db";

SQLiteDatabase Db1;
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, CURRENT_DB_VERSION);
        this.context = context;

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        createUserTable(db);
        createMessageTable(db);
        createDialogTable(db);
//      // //Raj
        createTimelineTable(db);
        createNewsFeedTable(db);
        createProfileTable(db);
        createProfilemediaListTable(db);
        createFriendinfoTable(db);
        //samson
        createMultiImagePostTable(db);


        //

        this.Db1=db;
    }
    private void createMultiImagePostTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub

        StringBuilder MultiImagePostTablefields = new StringBuilder();
        MultiImagePostTablefields.append(MultiImagePostTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(MultiImagePostTable.Cols.IMAGE).append(" TEXT, ")
                .append(MultiImagePostTable.Cols.IMAGE_CREATED_AT).append(" TEXT, ")
                .append(MultiImagePostTable.Cols.IMAGE_THUMB).append(" TEXT, ")
                .append(MultiImagePostTable.Cols.POST_ID).append(" TEXT ");
        createTable(db, MultiImagePostTable.TABLE_NAME,
                MultiImagePostTablefields.toString());

    }
    private void createUserTable(SQLiteDatabase db) {
        StringBuilder userTableFields = new StringBuilder();
        userTableFields.append(UserTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY AUTOINCREMENT, ")
                .append(UserTable.Cols.USER_ID).append(" INTEGER, ")
                .append(UserTable.Cols.FULL_NAME).append(" TEXT, ")
                .append(UserTable.Cols.EMAIL).append(" TEXT, ")
                .append(UserTable.Cols.LOGIN).append(" TEXT, ")
                .append(UserTable.Cols.PHONE)
                .append(" TEXT, ")
                .append(UserTable.Cols.WEB_SITE)
                .append(" TEXT, ")
                .append(UserTable.Cols.CUSTOM_DATA)
                .append(" TEXT, ")
                .append(UserTable.Cols.LAST_REQUEST_AT)
                .append(" TEXT, ")
                .append(UserTable.Cols.EXTERNAL_ID)
                .append(" TEXT, ")
                        // .append(UserTable.Cols.FACEBOOK_ID).append(" INTEGER, ")
                        // .append(UserTable.Cols.TWITTER_ID).append(" INTEGER, ")
                .append(UserTable.Cols.BLOB_ID).append(" INTEGER, ")
                .append(UserTable.Cols.AVATAR_URL).append(" TEXT, ")
                .append(UserTable.Cols.STATUS).append(" TEXT, ")
                .append(UserTable.Cols.IS_ONLINE).append(" INTEGER");
        createTable(db, UserTable.TABLE_NAME, userTableFields.toString());
    }

    private void createMessageTable(SQLiteDatabase db) {
        StringBuilder messageTableFields = new StringBuilder();
        messageTableFields.append(MessageTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(MessageTable.Cols.MESSAGE_ID).append(" TEXT UNIQUE, ")
                .append(MessageTable.Cols.DIALOG_ID).append(" TEXT, ")
                .append(MessageTable.Cols.SENDER_ID).append(" INTEGER, ")
                .append(MessageTable.Cols.BODY).append(" TEXT, ")
                .append(MessageTable.Cols.TIME).append(" LONG, ")
                .append(MessageTable.Cols.ATTACH_FILE_ID).append(" TEXT, ")
                .append(MessageTable.Cols.ATTACH_TYPE).append(" TEXT, ")
                .append(MessageTable.Cols.IS_READ).append(" INTEGER, ")
                .append(MessageTable.Cols.IS_DELIVERED).append(" INTEGER, ")
                .append(MessageTable.Cols.IS_SYNC).append(" INTEGER, ")
                .append(MessageTable.Cols.FRIENDS_NOTIFICATION_TYPE)
                .append(" INTEGER");
        createTable(db, MessageTable.TABLE_NAME, messageTableFields.toString());
    }

    private void createDialogTable(SQLiteDatabase db) {
        StringBuilder dialogTableFields = new StringBuilder();
        dialogTableFields.append(DialogTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY AUTOINCREMENT, ")
                .append(DialogTable.Cols.DIALOG_ID).append(" TEXT, ")
                .append(DialogTable.Cols.ROOM_JID_ID).append(" TEXT, ")
                .append(DialogTable.Cols.NAME).append(" TEXT, ")
                .append(DialogTable.Cols.COUNT_UNREAD_MESSAGES)
                .append(" INTEGER, ").append(DialogTable.Cols.LAST_MESSAGE)
                .append(" TEXT, ")
                .append(DialogTable.Cols.LAST_MESSAGE_USER_ID)
                .append(" LONG, ").append(DialogTable.Cols.LAST_DATE_SENT)
                .append(" LONG, ").append(DialogTable.Cols.OCCUPANTS_IDS)
                .append(" TEXT, ").append(DialogTable.Cols.PHOTO_URL)
                .append(" TEXT, ").append(DialogTable.Cols.VROId)
                .append(" TEXT, ").append(DialogTable.Cols.TYPE)
                .append(" INTEGER");
        createTable(db, DialogTable.TABLE_NAME, dialogTableFields.toString());
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        dropTable(db, UserTable.TABLE_NAME);
        dropTable(db, MessageTable.TABLE_NAME);
        dropTable(db, DialogTable.TABLE_NAME);
        onCreate(db);
    }

    public void dropTable(SQLiteDatabase db, String name) {
        String query = MessageFormat
                .format(DatabaseHelper.KEY_DROP_TABLE, name);
        db.execSQL(query);
    }

    public void createTable(SQLiteDatabase db, String name, String fields) {
        String query = MessageFormat.format(DatabaseHelper.KEY_CREATE_TABLE,
                name, fields);
        db.execSQL(query);
    }

    // ///////////////Raj
    private void createProfilemediaListTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        StringBuilder ProfileMediaListTablefields = new StringBuilder();
        ProfileMediaListTablefields.append(ProfileMedialistTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY AUTOINCREMENT, ")
                .append(ProfileMedialistTable.Cols.USERID).append(" INTEGER, ")
                .append(ProfileMedialistTable.Cols.IMAGETHUMB)
                .append(" TEXT, ").append(ProfileMedialistTable.Cols.IMAGEURL)
                .append(" TEXT, ").append(ProfileMedialistTable.Cols.TYPE)
                .append(" TEXT ");
        createTable(db, ProfileMedialistTable.TABLE_NAME,
                ProfileMediaListTablefields.toString());

    }

    private void createProfileTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        StringBuilder ProfileTableFields = new StringBuilder();
        ProfileTableFields.append(ProfileTable.Cols.ABOUT).append(" TEXT, ")
                .append(ProfileTable.Cols.CHANNELCOUNT).append(" TEXT, ")
                .append(ProfileTable.Cols.CITY).append(" TEXT, ")
                .append(ProfileTable.Cols.COLLEGEAT).append(" TEXT, ")
                .append(ProfileTable.Cols.COUNTRY)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.DOB)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.EMAIL)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.FIRSTNAME)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.FRIENDSCOUNT)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.FRIENDSHIPSTATUS)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.GENDER)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.HOBBY)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.IMAGECOUNT)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.INTERESTS)
                .append(" TEXT, ")
                .append(ProfileTable.Cols.LASTNAME)
                .append(" TEXT, ")
                        // .append(ProfileTable.Cols.MEDIALIST).append(" TEXT, ")
                .append(ProfileTable.Cols.MEMBERSINCE).append(" TEXT, ")
                .append(ProfileTable.Cols.PRIVACY).append(" TEXT, ")
                .append(ProfileTable.Cols.PROFILEPICURL).append(" TEXT, ")
                .append(ProfileTable.Cols.QBID).append(" TEXT, ")
                .append(ProfileTable.Cols.RELATIONSHIPSTATUS).append(" TEXT, ")
                .append(ProfileTable.Cols.SCHOOLAT).append(" TEXT, ")
                .append(ProfileTable.Cols.STATE).append(" TEXT, ")
                .append(ProfileTable.Cols.TIMELINEPIC).append(" TEXT, ")
                .append(ProfileTable.Cols.USERID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(ProfileTable.Cols.USERNAME).append(" TEXT, ")
                .append(ProfileTable.Cols.VIDEOCOUNT).append(" TEXT, ")
                .append(ProfileTable.Cols.WORKSAT).append(" TEXT ");
        createTable(db, ProfileTable.TABLE_NAME, ProfileTableFields.toString());

    }

    private void createNewsFeedTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub

        StringBuilder NewsFeedTableFields = new StringBuilder();
        NewsFeedTableFields.append(TimelineTable.Cols.ID).append(" INTEGER, ")
                .append(NewsFeedTable.Cols.VROID).append(" INTEGER, ")
                .append(NewsFeedTable.Cols.FIRST_NAME).append(" TEXT, ")
                .append(NewsFeedTable.Cols.LAST_NAME).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST_TITLE).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST_CONTENT).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST_TYPE).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST_IMAGEURL).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST_IMAGEURL_THUMB)
                .append(" TEXT, ").append(NewsFeedTable.Cols.POST_VIDEOURL)
                .append(" TEXT, ").append(NewsFeedTable.Cols.POST_CREATED)
                .append(" TEXT, ").append(NewsFeedTable.Cols.POST_UPDATED)
                .append(" TEXT, ").append(NewsFeedTable.Cols.LIKE_COUNT)
                .append(" INTEGER, ").append(NewsFeedTable.Cols.COMMENT_COUNT)
                .append(" INTEGER, ").append(NewsFeedTable.Cols.SHARE_COUNT)
                .append(" INTEGER, ").append(NewsFeedTable.Cols.IS_MY_POST)
                .append(" TEXT, ").append(NewsFeedTable.Cols.IS_SHARED)
                .append(" TEXT, ").append(NewsFeedTable.Cols.IS_LIKED)
                .append(" TEXT, ")
                .append(NewsFeedTable.Cols.FROM_USER_FIRSTNAME)
                .append(" TEXT, ").append(NewsFeedTable.Cols.FROM_USER_ID)
                .append(" TEXT, ")
                .append(NewsFeedTable.Cols.FROM_USER_LAST_NAME)
                .append(" TEXT, ")
                .append(NewsFeedTable.Cols.FROM_USER_PROFILE_PIC)
                .append(" TEXT, ")
                .append(NewsFeedTable.Cols.TO_USER_FIRST_NAME)
                .append(" TEXT, ").append(NewsFeedTable.Cols.TO_USER_LAST_NAME)
                .append(" TEXT, ")
                .append(NewsFeedTable.Cols.TO_USER_PROFILE_PIC)
                .append(" TEXT, ").append(NewsFeedTable.Cols.USERS_POSTID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(NewsFeedTable.Cols.YOUTUBE_VIDEO_URL).append(" TEXT, ")
                .append(NewsFeedTable.Cols.POST__VIDEO_URL_THUMB)
                .append(" TEXT");
        createTable(db, NewsFeedTable.TABLE_NAME,
                NewsFeedTableFields.toString());

    }

    private void createTimelineTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        StringBuilder timeLineTableFields = new StringBuilder();
        timeLineTableFields.append(TimelineTable.Cols.ID).append(" INTEGER, ")
                .append(TimelineTable.Cols.VROID).append(" INTEGER, ")
                .append(TimelineTable.Cols.FIRST_NAME).append(" TEXT, ")
                .append(TimelineTable.Cols.LAST_NAME).append(" TEXT, ")
                .append(TimelineTable.Cols.POST_TITLE).append(" TEXT, ")
                .append(TimelineTable.Cols.POST_CONTENT).append(" TEXT, ")
                .append(TimelineTable.Cols.POST_TYPE).append(" TEXT, ")
                .append(TimelineTable.Cols.POST_IMAGEURL).append(" TEXT, ")
                .append(TimelineTable.Cols.POST_IMAGEURL_THUMB)
                .append(" TEXT, ").append(TimelineTable.Cols.POST_VIDEOURL)
                .append(" TEXT, ").append(TimelineTable.Cols.POST_CREATED)
                .append(" TEXT, ").append(TimelineTable.Cols.POST_UPDATED)
                .append(" TEXT, ").append(TimelineTable.Cols.LIKE_COUNT)
                .append(" INTEGER, ").append(TimelineTable.Cols.COMMENT_COUNT)
                .append(" INTEGER, ").append(TimelineTable.Cols.SHARE_COUNT)
                .append(" INTEGER, ").append(TimelineTable.Cols.IS_MY_POST)
                .append(" TEXT, ").append(TimelineTable.Cols.IS_SHARED)
                .append(" TEXT, ").append(TimelineTable.Cols.IS_LIKED)
                .append(" TEXT, ")
                .append(TimelineTable.Cols.FROM_USER_FIRSTNAME)
                .append(" TEXT, ").append(TimelineTable.Cols.FROM_USER_ID)
                .append(" TEXT, ")
                .append(TimelineTable.Cols.FROM_USER_LAST_NAME)
                .append(" TEXT, ")
                .append(TimelineTable.Cols.FROM_USER_PROFILE_PIC)
                .append(" TEXT, ")
                .append(TimelineTable.Cols.TO_USER_FIRST_NAME)
                .append(" TEXT, ").append(TimelineTable.Cols.TO_USER_LAST_NAME)
                .append(" TEXT, ")
                .append(TimelineTable.Cols.TO_USER_PROFILE_PIC)
                .append(" TEXT, ").append(TimelineTable.Cols.USERS_POSTID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(TimelineTable.Cols.YOUTUBE_VIDEO_URL).append(" TEXT, ")
                .append(TimelineTable.Cols.POST__VIDEO_URL_THUMB)
                .append(" TEXT");
        createTable(db, TimelineTable.TABLE_NAME,
                timeLineTableFields.toString());

    }

    private void createFriendinfoTable(SQLiteDatabase db) {
        // TODO Auto-generated method stub

        StringBuilder FriendInfoTablefields = new StringBuilder();
        FriendInfoTablefields.append(FriendinfoTable.Cols.ID)
                .append(" INTEGER PRIMARY KEY, ")
                .append(FriendinfoTable.Cols.FIRST_NAME).append(" TEXT, ")
                .append(FriendinfoTable.Cols.LAST_NAME).append(" TEXT, ")
                .append(FriendinfoTable.Cols.USER_NAME).append(" TEXT, ")
                .append(FriendinfoTable.Cols.EMAIL).append(" TEXT, ")
                .append(FriendinfoTable.Cols.USER_PROFILE_PIC)
                .append(" TEXT, ")
                .append(FriendinfoTable.Cols.USER_TIMELINE_PIC)
                .append(" TEXT, ").append(FriendinfoTable.Cols.COUNTRY)
                .append(" TEXT, ").append(FriendinfoTable.Cols.STATE)
                .append(" TEXT, ").append(FriendinfoTable.Cols.CITY)
                .append(" TEXT, ").append(FriendinfoTable.Cols.ABOUT)
                .append(" TEXT, ").append(FriendinfoTable.Cols.GENDER)
                .append(" TEXT, ").append(FriendinfoTable.Cols.DATEOFBIRTH)
                .append(" TEXT, ")
                .append(FriendinfoTable.Cols.FRIENDSHIP_STATUS)
                .append(" TEXT, ").append(FriendinfoTable.Cols.QUICKBLOX_ID)
                .append(" TEXT ");
        createTable(db, FriendinfoTable.TABLE_NAME,
                FriendInfoTablefields.toString());

    }

    //aswathy

public void getfriendsdata()
{

    Cursor c=Db1.rawQuery("SELECT * FROM friendinfotable",null);

    try
    {
        //put cursor on the first position
        c.moveToFirst();

        //fetching all  records from cursor until reaching last record
        while(!c.isAfterLast())
        {
                /*
                 * Display record on the screen
                 * Note : here in the cursor there are two columns.
                 * So be careful while fetching record.
                 * If no column is there, it will give you exception
                 */
            Toast.makeText(context,c.getString(0)+ " "+c.getString(1),Toast.LENGTH_SHORT).show();

            //moving cursor to next record
            c.moveToNext();
        }
        //closing cursor
        c.close();
    }catch(Exception e)
    {
        Log.d("Error", "error in cursor");
        e.printStackTrace();
    }

}

This is how it is invoked:

public class FindPeopleFragment extends BaseFragment{
....
  private void loadMoreData() {
DatabaseHelper dh=new DatabaseHelper(getActivity());


                dh.getfriendsdata();
}
}

Here is the logcat output showing the exception:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference at below line
Cursor c=Db1.rawQuery("SELECT * FROM friendinfotable",null);

解决方案

Looks like onCreateis not called before you run getfriendsdata();. Because Db1 is only initialized if in onCreate().

You have to call Cursor c= getReadableDatabase().rawQuery("SELECT * FROM friendinfotable",null);

这篇关于SQLiteDatabase.rawQuery(java.lang.String中,java.lang.String中[])在空对象引用“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆