如何使用SQLite数据库来显示整个应用程序的登录方式的数据? [英] How to display Login wise data in whole application using sqlite database?

查看:122
本文介绍了如何使用SQLite数据库来显示整个应用程序的登录方式的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做数据库注册和登录,我当用户输入的注册表格的电子邮件和密码,然后再验证他/她登录。现在,我想在应用程序中显示userwise数据意味着如。用户A和用户B,如果用户A登录,并在数据库中输入的数据则只有用户A是表现出他/她输入的数据不是用户B同样的方式用户B在输入数据库中的数据,然后再只是用户B表现出他/她的输入的数据。我有注册,登录,账户,费用,收入表。总之我想在整个应用程序显示用户明智的数据。

下面是我的,我用的外键SQLIteHelper类,但我没有成功,使外键。

 公共类SQLite_Helper扩展SQLiteOpenHelper {
    //所有静态变量
    //数据库版本
    私有静态最终诠释DATABASE_VERSION = 1;

    //数据库名称
    私有静态最后弦乐DATABASE_NAME =login.db;

    //联系方式表名
    私有静态最后弦乐TABLE_SIGNIN =USER_LOGIN;
    私有静态最后弦乐TABLE_EXPENSE =代价;
    私有静态最后弦乐SIGNUP_TABLE =注册;
    私有静态最后弦乐TABLE_ACCOUNT =帐户;
    私有静态最后弦乐TABLE_INCOME =收入;
    私有静态最后弦乐TABLE_TRANSACTION =移植;
    //联系方式表列名
    @燮pressWarnings(未使用)
    私有静态最后弦乐ACCT_ID =actid;
    私有静态最后弦乐KEY_ID =ID;
    私有静态最后弦乐KEY_PWD =PWD;

    私有静态最后弦乐ACCT_NAME =acctname;
    私有静态最后弦乐ACCT_HEAD_NAME =acctheadname;
    私有静态最后弦乐OPEN_BAL =openbal;

    私有静态最后弦乐FIRST_NAME =FNAME;
    私有静态最后弦乐姓氏=LNAME;
    私有静态最后字符串email =电子邮件;
    公共静态最后弦乐PASSWORD =PWD;
    私有静态最后弦乐PAYEE =PNAME;
    私有静态最后弦乐类别=类别;
    私有静态最后弦乐金额=amnt;
    私有静态最后弦乐交货期=DD;
    私有静态最后弦乐PAYFROM =payfrom;
    私有静态最后弦乐注=注意事项;
    私有静态最后弦乐ENOTES =注意事项;
    私有静态最后弦乐EPAYEE =PNAME;
    私有静态最后弦乐ECATEGORY =类;
    私有静态最后弦乐EAMOUNT =amnt;
    私有静态最后弦乐EDUEDATE =DD;
    私有静态最后弦乐EPAYFROM =payfrom;
    私有静态最后弦乐TID =TID;
    私有静态最后弦乐TAMT =TAMT;
    私有静态最后弦乐TDATE =tdate;
    私有静态最后弦乐EXPENSE_ID =EID;
    私有静态最后弦乐INCOME_ID =EID;
    私有静态最后弦乐REPEAT_EXPENSE =erepeat;
    私有静态最后弦乐REPEAT_INCOME =irepeat;
    私有静态最后弦乐SIGNIN_ID =UID;
    私有静态最后弦乐SIGNUP_ID =SID;

//注册表
    字符串CREATE_SIGNUP_TABLE =CREATE TABLE+ SIGNUP_TABLE +(
            + SIGNUP_ID +INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,+ FIRST_NAME +TEXT非空独一无二的,+ LAST_NAME +TEXT非空独一无二的,+ EMAIL +TEXT非空独一无二的,
            +密码+TEXT非空特有的+);

// USER_LOGIN表
    字符串CREATE_SIGNIN_TABLE =CREATE TABLE+ TABLE_SIGNIN +(
            + SIGNIN_ID +INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,+ KEY_ID +TEXT非空独一无二的,+ KEY_PWD +INTEGER NOT NULL独一无二的,+外键(+ SIGNIN_ID +)参考+ SIGNUP_TABLE +(+ SIGNUP_ID +));;

//事务处理表
    私有静态最后弦乐CREATE_TABLE_TRANSACTION =CREATE TABLE+ TABLE_TRANSACTION
                +(+ TID +INTEGER PRIMARY KEY,+ TAMT +TEXT
                + TDATE +TEXT+);

//费用表
    静态字符串CREATE_TABLE_EXPENSE =CREATE TABLE+ TABLE_EXPENSE +(
                + EXPENSE_ID +INTEGER PRIMARY KEY NOT NULL,+收款人+TEXT+分类+TEXT+金额+数字的,
                +交货期+TEXT+ PAYFROM +TEXT+ NOTES +TEXT+ REPEAT_EXPENSE +TEXT+外键(+ EXPENSE_ID +)参考+ TABLE_SIGNIN +(+ SIGNIN_ID +)) ;;

//收益表
    静态字符串CREATE_TABLE_INCOME =CREATE TABLE+ TABLE_INCOME +(
                + INCOME_ID +INTEGER PRIMARY KEY NOT NULL,+ EPAYEE +TEXT+ ECATEGORY +TEXT+ EAMOUNT +数字的,
                + EDUEDATE +TEXT+ EPAYFROM +TEXT+ ENOTES +TEXT+ REPEAT_INCOME +TEXT+外键(+ INCOME_ID +)参考+ TABLE_SIGNIN +(+ SIGNIN_ID +)) ;;

//帐户表
    静态字符串CREATE_TABLE_ACCOUNT =CREATE TABLE+ TABLE_ACCOUNT +(
            + ACCT_ID +INTEGER PRIMARY KEY NOT NULL,+ ACCT_NAME +TEXT
            + ACCT_HEAD_NAME +TEXT+ OPEN_BAL +TEXT+外键(+ ACCT_ID +)参考+ TABLE_SIGNIN +(+ SIGNIN_ID +));;



    公共SQLite_Helper(上下文的背景下){
        超级(上下文中,login.db,空,1);
        // TODO自动生成构造函数存根
    }

    @覆盖
    公共无效的onCreate(SQLiteDatabase DB){
        // TODO自动生成方法存根
        db.execSQL(CREATE_SIGNIN_TABLE);
        db.execSQL(CREATE_SIGNUP_TABLE);
        db.execSQL(CREATE_TABLE_ACCOUNT);
        db.execSQL(CREATE_TABLE_EXPENSE);
        db.execSQL(CREATE_TABLE_INCOME);
        db.execSQL(CREATE_TABLE_TRANSACTION);
    }

    @覆盖
    公共无效onUpgrade(SQLiteDatabase分贝,INT ARG1,ARG2 INT){
        // TODO自动生成方法存根
        db.execSQL(DROP TABLE IF EXISTS+ TABLE_SIGNIN);
        db.execSQL(DROP TABLE IF EXISTS+ SIGNUP_TABLE);
        db.execSQL(DROP TABLE IF EXISTS+ TABLE_ACCOUNT);
        db.execSQL(DROP TABLE IF EXISTS+ TABLE_EXPENSE);
        db.execSQL(DROP TABLE IF EXISTS+ TABLE_INCOME);
        db.execSQL(DROP TABLE IF EXISTS+ TABLE_TRANSACTION);
        //再次创建表
        的onCreate(DB);
    }

    //添加新用户
    无效的addContact(用户用户){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​值=新ContentValues​​();
        //values​​.put(SIGNIN_ID,user.getuId());
        values​​.put(KEY_ID,user.getId()); // 联系人姓名
        values​​.put(KEY_PWD,user.getPwd()); //联系电话

        //插入行
        db.insert(TABLE_SIGNIN,空,价值观);
        db.close(); //闭幕数据库连接
    }

    无效addExpense(ExpenseRecord expenserec){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​值=新ContentValues​​();
        values​​.put(EPAYEE,expenserec.getPayee()); // 收款人姓名
        values​​.put(ECATEGORY,expenserec.getCategory()); //联系电话
        values​​.put(EAMOUNT,expenserec.getAmount());
        values​​.put(EDUEDATE,expenserec.getDueDate());
        values​​.put(PAYFROM,expenserec.getPayfrom());
        values​​.put(ENOTES,expenserec.getNotes());

        values​​.put(REPEAT_EXPENSE,expenserec.getRepeat());
        //插入行
        db.insert(TABLE_EXPENSE,空,价值观);
        db.close(); //闭幕数据库连接
    }

    无效addIncome(Incomerecord incomerec){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​值=新ContentValues​​();
        values​​.put(收款人,incomerec.getPayee()); // 收款人姓名
        values​​.put(类别,inc​​omerec.getCategory()); //联系电话
        values​​.put(金额,incomerec.getAmount());
        values​​.put(交货期,incomerec.getDueDate());
        values​​.put(PAYFROM,incomerec.getPayfrom());
        values​​.put(NOTES,incomerec.getNotes());
        values​​.put(REPEAT_INCOME,incomerec.getRepeat());
        //插入行
        db.insert(TABLE_INCOME,空,价值观);
        db.close(); //闭幕数据库连接
    }

    //添加注册场

    无效addsignupfield(注册申请){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​ CV =新ContentValues​​();
        cv.put(FIRST_NAME,signup.getFname());
        cv.put(姓氏,signup.getLname());
        cv.put(EMAIL,signup.getEmail());
        cv.put(密码,signup.getPwd());

        db.insert(SIGNUP_TABLE,空,CV);
        db.close();
    }

    无效addAcctfield(客户帐户){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​ CV =新ContentValues​​();
        cv.put(ACCT_NAME,account.getAcctname());
        cv.put(ACCT_HEAD_NAME,account.getAcctheadname());
        cv.put(OPEN_BAL,account.getOpenbal());

        db.insert(TABLE_ACCOUNT,空,CV);
        db.close();
    }

    //获取单个用户
    用户的getUser(INT ID){
        SQLiteDatabase DB = this.getReadableDatabase();

        光标光标= db.query(TABLE_SIGNIN,
                新的String [] {KEY_ID,KEY_PWD},KEY_ID +=?,
                新的String [] {将String.valueOf(ID)},NULL,NULL,NULL,NULL);
        如果(光标!= NULL)
            cursor.moveToFirst();

        //用户的用户=新用户(的Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1));
        用户用户=新用户((cursor.getString(1)),(cursor.getString(2)));
        //联系触点=新的联系方式(的Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1),cursor.getString(2));
        //返回接触
        返回用户;
    }

    //获取单个注册

    注册getSignup(字符串电子邮件){
        SQLiteDatabase DB = this.getReadableDatabase();

        光标光标= db.query(SIGNUP_TABLE,新的String [] {FIRST_NAME,
                姓氏,电子邮件,密码},EMAIL +=?,
                新的String [] {将String.valueOf(电子邮件)},NULL,NULL,NULL,NULL);

        如果(光标!= NULL)
            cursor.moveToFirst();

        注册注册=新注册(cursor.getString(0),cursor.getString(1)
                cursor.getString(2),cursor.getString(3));

        返回注册;
    }

    ExpenseRecord getExpense(字符串Payfrom){
        SQLiteDatabase DB = this.getReadableDatabase();

        光标光标= db.query(TABLE_EXPENSE,新的String [] {收款人,金额,
                类别,PAYFROM,NOTES,REPEAT_EXPENSE},PAYFROM +=?,
                新的String [] {将String.valueOf(Payfrom)},NULL,NULL,NULL,
                空值);

        如果(光标!= NULL)
            cursor.moveToFirst();

        ExpenseRecord expenserec =新ExpenseRecord(cursor.getString(0),
                cursor.getString(1),的Integer.parseInt(金额),
                cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6));

        返回expenserec;
    }
    Incomerecord getIncome(字符串Payfrom){
        SQLiteDatabase DB = this.getReadableDatabase();

        光标光标= db.query(TABLE_INCOME,新的String [] {收款人,金额,
                类别,PAYFROM,NOTES,REPEAT_INCOME},PAYFROM +=?,
                新的String [] {将String.valueOf(Payfrom)},NULL,NULL,NULL,
                空值);

        如果(光标!= NULL)
            cursor.moveToFirst();

        Incomerecord incomerec =新Incomerecord(cursor.getString(0),
                cursor.getString(1),的Integer.parseInt(金额),
                cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6));

        返回incomerec;
    }


    账户是getAccount(字符串名称){
        SQLiteDatabase DB = this.getReadableDatabase();

        光标光标= db.query(TABLE_ACCOUNT,新的String [] {ACCT_NAME,
                ACCT_HEAD_NAME,OPEN_BAL},ACCT_NAME +=?,
                新的String [] {将String.valueOf(ACCT_NAME)},NULL,NULL,NULL,
                空值);

        如果(光标!= NULL)
            cursor.moveToFirst();

        //用户的用户=新用户(的Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1));
        账户账户=新帐户(cursor.getString(0)
                (cursor.getString(1)),cursor.getString(2));
        //联系触点=新的联系方式(的Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1),cursor.getString(2));
        //返回接触
        返回帐户;
    }

    //获取所有联系人
    公开名单<使用者> getAllContacts(){
        清单<使用者>用户列表=新的ArrayList<使用者>();
        //选择所有查询
        字符串selectQuery =SELECT * FROM+ TABLE_SIGNIN;

        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.rawQuery(selectQuery,NULL);

        //遍历所有行和添加到列表
        如果(cursor.moveToFirst()){
            做 {
                //联系触点=新联系();
                用户的用户=新用户();
                // user.setId(的Integer.parseInt(cursor.getString(0)));
                // user.setPwd(cursor.getString(1));
                //user.setuId(Integer.parseInt(cursor.getString(0)));
                user.setId(cursor.getString(1));
                user.setPwd((cursor.getString(2)));

                //添加联系人列出
                userlist.add(用户);
            }而(cursor.moveToNext());
        }
        cursor.close();
        //返回联系人列表
        返回用户列表;
    }

    公开名单< ExpenseRecord> getAllExpense(){
        名单< ExpenseRecord> userlist1 =新的ArrayList< ExpenseRecord>();
        //选择所有查询

        Log.d(读书,读一切费用......);
        字符串selectQuery =SELECT * FROM+ TABLE_EXPENSE;
        Log.e(所有数据, - >中+ selectQuery);
        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.rawQuery(selectQuery,NULL);

        //遍历所有行和添加到列表
        如果(cursor.moveToPosition(0)){
            做 {
                ExpenseRecord EXP =新ExpenseRecord();
                exp.setPayee(cursor.getString(0));
                exp.setCategory(cursor.getString(1));
                exp.setAmount(cursor.getInt(2));
                exp.setDueDate(cursor.getString(3));
                exp.setPayfrom(cursor.getString(4));
                exp.setNotes(cursor.getString(5));

                userlist1.add(EXP);

            }而(cursor.moveToNext());
        }
        cursor.close();
        //返回联系人列表
        返回userlist1;
    }
    公开名单< Incomerecord> getAllIncome(){
        名单< Incomerecord> userlist2 =新的ArrayList< Incomerecord>();
        //选择所有查询

        Log.d(读书,读所有收入。);
        字符串selectQuery =SELECT * FROM+ TABLE_INCOME;
        Log.e(所有数据, - >中+ selectQuery);
        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.rawQuery(selectQuery,NULL);

        //遍历所有行和添加到列表
        如果(cursor.moveToPosition(0)){
            做 {
                Incomerecord IXP =新Incomerecord();
                ixp.setPayee(cursor.getString(0));
                ixp.setCategory(cursor.getString(1));
                ixp.setAmount(cursor.getInt(2));
                ixp.setDueDate(cursor.getString(3));
                ixp.setPayfrom(cursor.getString(4));
                ixp.setNotes(cursor.getString(5));
                ixp.setRepeat(cursor.getString(6));
                userlist2.add(IXP);

            }而(cursor.moveToNext());
        }
        cursor.close();
        //返回联系人列表
        返回userlist2;
    }

    公共字符串checkLogin(字符串传递){
        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.query(SIGNUP_TABLE,空,PWD+=+ pass.trim()
                +',NULL,NULL,NULL,NULL);

        如果(光标== NULL || cursor.getCount()== 0)
            返回 ;
        cursor.moveToFirst();
        字符串password = cursor.getString(cursor.getColumnIndex(PWD));
        返回密码;

    }
    公共字符串checkLogin2(字符串电子邮件){
        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.query(SIGNUP_TABLE,空,电子邮件+=+ email.trim()
                +',NULL,NULL,NULL,NULL);

        如果(光标== NULL || cursor.getCount()== 0)
            返回 ;
        cursor.moveToFirst();
        字符串EMAILID = cursor.getString(cursor.getColumnIndex(电子邮件));
        返回EMAILID;

    }
    公共字符串checkLogin3(字符串signupid){
        SQLiteDatabase DB = this.getWritableDatabase();
        光标光标= db.query(SIGNUP_TABLE,空,SID+=+ signupid.trim()
                +',NULL,NULL,NULL,NULL);

        如果(光标== NULL || cursor.getCount()== 0)
            返回 ;
        cursor.moveToFirst();
        串EMAILID = cursor.getString(cursor.getColumnIndex(SID));
        返回EMAILID;

    }



    //获取所有注册用户

    公开名单<注册> getAllSignup(){
        名单<注册> signuplist =新的ArrayList<注册>();

        字符串select_statement中=SELECT * FROM+ SIGNUP_TABLE;

        SQLiteDatabase DB = this.getWritableDatabase();
        光标C = db.rawQuery(select_statement中,NULL);

        如果(c.moveToPosition(0)){
            做 {
                注册注册=新注册();
                signup.setFname(c.getString(0));
                signup.setLname(c.getString(1));
                signup.setEmail(c.getString(2));
                signup.setPwd(c.getString(3));

                signuplist.add(注册);

            }而(c.moveToNext());
        }
        c.close();
        返回signuplist;
    }

    公开名单<帐户> getAllAccounts(){
        名单<帐户>为accountList =新的ArrayList<帐户>();

        字符串select_statement中=SELECT * FROM+ TABLE_ACCOUNT;

        SQLiteDatabase DB = this.getWritableDatabase();
        光标C = db.rawQuery(select_statement中,NULL);

        如果(c.moveToPosition(0)){
            做 {
                账户账户=新帐户();
                account.setAcctname(c.getString(0));
                account.setAcctheadname((c.getString(1)));
                account.setopenbal(((c.getString(2))));

                accountlist.add(账户);

            }而(c.moveToNext());
        }

        c.close();
        返回为accountList;

    }

    //更新单触点
    公众诠释updateContact(用户用户){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​值=新ContentValues​​();
        values​​.put(KEY_ID,user.getId());
        values​​.put(KEY_PWD,user.getPwd());

        //更新行
        返回db.update(TABLE_SIGNIN,价值观,KEY_ID +=?,
                新的String [] {将String.valueOf(user.getId())});
    }

    //删除单个联系人
    公共无效deleteContact(用户用户){
        SQLiteDatabase DB = this.getWritableDatabase();
        db.delete(TABLE_SIGNIN,KEY_ID +=?,
                新的String [] {将String.valueOf(user.getId())});
        db.close();
    }

    //删除单个注册
    公共无效deleteSignup(注册申请){
        SQLiteDatabase DB = this.getWritableDatabase();
        db.delete(SIGNUP_TABLE +=?,空,
                新的String [] {将String.valueOf(signup.getEmail())});
        db.close();
    }

    公众诠释updateAccount(客户帐户){
        SQLiteDatabase DB = this.getWritableDatabase();

        ContentValues​​值=新ContentValues​​();
        values​​.put(OPEN_BAL,account.open_bal);
        Log.i(结果的内部updateaccount,+值);

        //返回db.update(TABLE_ACCOUNT,价值观,openbal+=+ 5000,NULL);

        //更新行

        最终的String [] whereArgs = {account.Acct_id.toString()};
        返回db.update(TABLE_ACCOUNT,价值观,ACCT_ID +=
                + account.Acct_id.toString(),NULL);
        //新的String [] {将String.valueOf(ACCT_ID)});

    }

    //获取联系人计数

    公众诠释getContactsCount(){
        字符串countQuery =SELECT * FROM+ TABLE_SIGNIN;
        SQLiteDatabase DB = this.getReadableDatabase();
        光标光标= db.rawQuery(countQuery,NULL);
        cursor.close();

        //返回计数
        返回cursor.getCount();
    }

}
 

解决方案

在登录授权,就可以保存用户ID共享preferences,然后由ID,它是保存在共享$ P致电查询$ pferences直到用户将被注销。

这是您的共享preferences 类,它是静态的,所以你可以从每一个活动达到。

 公共类共享preF {

    公共静态无效使用setdefaults(字符串键,字符串值,上下文语境){
        共享preferences preFS = preferenceManager.getDefaultShared preferences(上下文);
        共享preferences.Editor编辑器= prefs.edit();
        editor.putString(键,值);
        editor.commit();
    }

    公共静态字符串为getDefaults(字符串键,上下文语境){
        共享preferences preferences = preferenceManager.getDefaultShared preferences(上下文);
        返回preferences.getString(键,NULL);
    }

}
 

这是你如何去设置,让你的用户ID信息。

保存到共享preferences

  //登录成功后的用户,节省用户ID共享preF
    共享pref.setDefaults(user_ID的,用户ID这里写,背景);
 

从共享preferences获取

 共享pref.getDefaults(user_ID的,getApplicationContext())
 

I make database for signup and login, I authenticate when user is enter email and password in signup form then and then he/she login. Now I want to display userwise data in application means eg. user A and user B, if user A login and enter the data in database then only user A is show his/her entered data not user B. Same way user B is enter data in database then and then only user B show his/her entered data. I have signup,login,account,expense,income tables. In short I want to display user wise data in whole application.

Here is my SQLIteHelper class which I use foreign key but I'm not success to make foreign key.

public class SQLite_Helper extends SQLiteOpenHelper {
    // All Static variables
    // Database Version
    private static final int DATABASE_VERSION = 1;

    // Database Name
    private static final String DATABASE_NAME = "login.db";

    // Contacts table name
    private static final String TABLE_SIGNIN = "user_login";
    private static final String TABLE_EXPENSE = "expense";
    private static final String SIGNUP_TABLE = "signup";
    private static final String TABLE_ACCOUNT = "account";
    private static final String TABLE_INCOME = "Income";
    private static final String TABLE_TRANSACTION = "tran";
    // Contacts Table Columns names
    @SuppressWarnings("unused")
    private static final String ACCT_ID = "actid";
    private static final String KEY_ID = "id";
    private static final String KEY_PWD = "pwd";

    private static final String ACCT_NAME = "acctname";
    private static final String ACCT_HEAD_NAME = "acctheadname";
    private static final String OPEN_BAL = "openbal";

    private static final String FIRST_NAME = "fname";
    private static final String LAST_NAME = "lname";
    private static final String EMAIL = "email";
    public static final String PASSWORD = "pwd";
    private static final String PAYEE = "pname";
    private static final String CATEGORY = "category";
    private static final String AMOUNT = "amnt";
    private static final String DUEDATE = "dd";
    private static final String PAYFROM = "payfrom";
    private static final String NOTES = "notes";
    private static final String ENOTES = "notes";
    private static final String EPAYEE = "pname";
    private static final String ECATEGORY = "category";
    private static final String EAMOUNT = "amnt";
    private static final String EDUEDATE = "dd";
    private static final String EPAYFROM = "payfrom";
    private static final String TID = "tid";
    private static final String TAMT = "tamt";
    private static final String TDATE = "tdate";
    private static final String EXPENSE_ID = "eid";
    private static final String INCOME_ID = "eid";
    private static final String REPEAT_EXPENSE = "erepeat";
    private static final String REPEAT_INCOME = "irepeat";
    private static final String SIGNIN_ID = "uid";
    private static final String SIGNUP_ID = "sid";

//  Signup Table
    String CREATE_SIGNUP_TABLE = "CREATE TABLE " + SIGNUP_TABLE + "("
            + SIGNUP_ID + "  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + FIRST_NAME + " TEXT not null unique," + LAST_NAME + " TEXT not null unique," + EMAIL + " TEXT not null unique,"
            + PASSWORD + " TEXT not null unique" + ")";

//  User_Login Table
    String CREATE_SIGNIN_TABLE = "CREATE TABLE " + TABLE_SIGNIN + "("
            + SIGNIN_ID + "  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+ KEY_ID + " TEXT not null unique," + KEY_PWD + " INTEGER not null unique," + " FOREIGN KEY ("+SIGNIN_ID+") REFERENCES "+SIGNUP_TABLE+" ("+SIGNUP_ID+"));";

//  Transaction Table   
    private static final String CREATE_TABLE_TRANSACTION = "CREATE TABLE " + TABLE_TRANSACTION
                + "(" + TID + " INTEGER PRIMARY KEY," + TAMT + " TEXT,"
                + TDATE + " TEXT" + ")";

//   Expense Table
    static String CREATE_TABLE_EXPENSE = "CREATE TABLE " + TABLE_EXPENSE + "("
                + EXPENSE_ID + " INTEGER PRIMARY KEY NOT NULL," + PAYEE + " TEXT," + CATEGORY + " TEXT," + AMOUNT + " NUMERIC,"
                + DUEDATE + " TEXT," + PAYFROM + " TEXT," + NOTES + " TEXT,"  + REPEAT_EXPENSE + " TEXT," + " FOREIGN KEY ("+EXPENSE_ID+") REFERENCES "+TABLE_SIGNIN+" ("+SIGNIN_ID+"));";

//  Income Table
    static String CREATE_TABLE_INCOME = "CREATE TABLE " + TABLE_INCOME + "("
                + INCOME_ID + " INTEGER PRIMARY KEY NOT NULL,"+ EPAYEE + " TEXT," + ECATEGORY + " TEXT," + EAMOUNT + " NUMERIC,"
                + EDUEDATE + " TEXT," + EPAYFROM + " TEXT," + ENOTES + " TEXT,"  + REPEAT_INCOME  + " TEXT," + " FOREIGN KEY ("+INCOME_ID+") REFERENCES "+TABLE_SIGNIN+" ("+SIGNIN_ID+"));";

//  Account Table
    static String CREATE_TABLE_ACCOUNT = "CREATE TABLE " + TABLE_ACCOUNT + "("
            + ACCT_ID + " INTEGER PRIMARY KEY NOT NULL," + ACCT_NAME + " TEXT,"
            + ACCT_HEAD_NAME + " TEXT," + OPEN_BAL + " TEXT," + " FOREIGN KEY ("+ACCT_ID+") REFERENCES "+TABLE_SIGNIN+" ("+SIGNIN_ID+"));";



    public SQLite_Helper(Context context) {
        super(context, "login.db", null, 1);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(CREATE_SIGNIN_TABLE);
        db.execSQL(CREATE_SIGNUP_TABLE);
        db.execSQL(CREATE_TABLE_ACCOUNT);
        db.execSQL(CREATE_TABLE_EXPENSE);
        db.execSQL(CREATE_TABLE_INCOME); 
        db.execSQL(CREATE_TABLE_TRANSACTION); 
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_SIGNIN);
        db.execSQL("DROP TABLE IF EXISTS " + SIGNUP_TABLE);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ACCOUNT);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_EXPENSE);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_INCOME);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_TRANSACTION);
        // Create tables again
        onCreate(db);
    }

    // Adding new user
    void addContact(User user) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        //values.put(SIGNIN_ID, user.getuId());
        values.put(KEY_ID, user.getId()); // Contact Name
        values.put(KEY_PWD, user.getPwd()); // Contact Phone

        // Inserting Row
        db.insert(TABLE_SIGNIN, null, values);
        db.close(); // Closing database connection
    }

    void addExpense(ExpenseRecord expenserec) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(EPAYEE, expenserec.getPayee()); // payee name
        values.put(ECATEGORY, expenserec.getCategory()); // Contact Phone
        values.put(EAMOUNT, expenserec.getAmount());
        values.put(EDUEDATE, expenserec.getDueDate());
        values.put(PAYFROM, expenserec.getPayfrom());
        values.put(ENOTES, expenserec.getNotes());

        values.put(REPEAT_EXPENSE,expenserec.getRepeat() );
        // Inserting Row
        db.insert(TABLE_EXPENSE, null, values);
        db.close(); // Closing database connection
    }

    void addIncome(Incomerecord incomerec) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(PAYEE, incomerec.getPayee()); // payee name
        values.put(CATEGORY, incomerec.getCategory()); // Contact Phone
        values.put(AMOUNT, incomerec.getAmount());
        values.put(DUEDATE, incomerec.getDueDate());
        values.put(PAYFROM, incomerec.getPayfrom());
        values.put(NOTES, incomerec.getNotes());
        values.put(REPEAT_INCOME, incomerec.getRepeat());
        // Inserting Row
        db.insert(TABLE_INCOME, null, values);
        db.close(); // Closing database connection
    }

    // Adding Signup field

    void addsignupfield(SignUp signup) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();
        cv.put(FIRST_NAME, signup.getFname());
        cv.put(LAST_NAME, signup.getLname());
        cv.put(EMAIL, signup.getEmail());
        cv.put(PASSWORD, signup.getPwd());

        db.insert(SIGNUP_TABLE, null, cv);
        db.close();
    }

    void addAcctfield(Account account) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();
        cv.put(ACCT_NAME, account.getAcctname());
        cv.put(ACCT_HEAD_NAME, account.getAcctheadname());
        cv.put(OPEN_BAL, account.getOpenbal());

        db.insert(TABLE_ACCOUNT, null, cv);
        db.close();
    }

    // Getting single user
    User getUser(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_SIGNIN,
                new String[] { KEY_ID, KEY_PWD }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        // User user = new User(Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1));
        User user = new User((cursor.getString(1)),(cursor.getString(2)));
        // Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1), cursor.getString(2));
        // return contact
        return user;
    }

    // Getting Single Signup

    SignUp getSignup(String email) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(SIGNUP_TABLE, new String[] { FIRST_NAME,
                LAST_NAME, EMAIL, PASSWORD }, EMAIL + "=?",
                new String[] { String.valueOf(email) }, null, null, null, null);

        if (cursor != null)
            cursor.moveToFirst();

        SignUp signup = new SignUp(cursor.getString(0), cursor.getString(1),
                cursor.getString(2), cursor.getString(3));

        return signup;
    }

    ExpenseRecord getExpense(String Payfrom) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_EXPENSE, new String[] { PAYEE, AMOUNT,
                CATEGORY, PAYFROM, NOTES,REPEAT_EXPENSE}, PAYFROM + "=?",
                new String[] { String.valueOf(Payfrom) }, null, null, null,
                null);

        if (cursor != null)
            cursor.moveToFirst();

        ExpenseRecord expenserec = new ExpenseRecord(cursor.getString(0),
                cursor.getString(1), Integer.parseInt(AMOUNT),
                cursor.getString(3), cursor.getString(4),cursor.getString(5),cursor.getString(6));

        return expenserec;
    }
    Incomerecord getIncome(String Payfrom) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_INCOME, new String[] { PAYEE, AMOUNT,
                CATEGORY, PAYFROM, NOTES,REPEAT_INCOME }, PAYFROM + "=?",
                new String[] { String.valueOf(Payfrom) }, null, null, null,
                null);

        if (cursor != null)
            cursor.moveToFirst();

        Incomerecord incomerec = new Incomerecord(cursor.getString(0),
                cursor.getString(1), Integer.parseInt(AMOUNT),
                cursor.getString(3), cursor.getString(4),cursor.getString(5),cursor.getString(6));

        return incomerec;
    }


    Account getAccount(String name) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_ACCOUNT, new String[] { ACCT_NAME,
                ACCT_HEAD_NAME, OPEN_BAL }, ACCT_NAME + "=?",
                new String[] { String.valueOf(ACCT_NAME) }, null, null, null,
                null);

        if (cursor != null)
            cursor.moveToFirst();

        // User user = new User(Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1));
        Account account = new Account(cursor.getString(0),
                (cursor.getString(1)), cursor.getString(2));
        // Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
        // cursor.getString(1), cursor.getString(2));
        // return contact
        return account;
    }

    // Getting All Contacts
    public List<User> getAllContacts() {
        List<User> userlist = new ArrayList<User>();
        // Select All Query
        String selectQuery = "SELECT  * FROM " + TABLE_SIGNIN;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                // Contact contact = new Contact();
                User user = new User();
                // user.setId(Integer.parseInt(cursor.getString(0)));
                // user.setPwd(cursor.getString(1));
                //user.setuId(Integer.parseInt(cursor.getString(0)));
                user.setId(cursor.getString(1));
                user.setPwd((cursor.getString(2)));

                // Adding contact to list
                userlist.add(user);
            } while (cursor.moveToNext());
        }
        cursor.close();
        // return contact list
        return userlist;
    }

    public List<ExpenseRecord> getAllExpense() {
        List<ExpenseRecord> userlist1 = new ArrayList<ExpenseRecord>();
        // Select All Query

        Log.d("Reading : ", "Reading all Expense..");
        String selectQuery = "SELECT * FROM " + TABLE_EXPENSE;
        Log.e("all data", "-->" + selectQuery);
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToPosition(0)) {
            do {
                ExpenseRecord exp = new ExpenseRecord();
                exp.setPayee(cursor.getString(0));
                exp.setCategory(cursor.getString(1));
                exp.setAmount(cursor.getInt(2));
                exp.setDueDate(cursor.getString(3));
                exp.setPayfrom(cursor.getString(4));
                exp.setNotes(cursor.getString(5));

                userlist1.add(exp);

            } while (cursor.moveToNext());
        }
        cursor.close();
        // return contact list
        return userlist1;
    }
    public List<Incomerecord> getAllIncome() {
        List<Incomerecord> userlist2 = new ArrayList<Incomerecord>();
        // Select All Query

        Log.d("Reading : ", "Reading all Income..");
        String selectQuery = "SELECT * FROM " + TABLE_INCOME;
        Log.e("all data", "-->" + selectQuery);
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToPosition(0)) {
            do {
                Incomerecord ixp = new Incomerecord();
                ixp.setPayee(cursor.getString(0));
                ixp.setCategory(cursor.getString(1));
                ixp.setAmount(cursor.getInt(2));
                ixp.setDueDate(cursor.getString(3));
                ixp.setPayfrom(cursor.getString(4));
                ixp.setNotes(cursor.getString(5));
                ixp.setRepeat(cursor.getString(6));
                userlist2.add(ixp);

            } while (cursor.moveToNext());
        }
        cursor.close();
        // return contact list
        return userlist2;
    }

    public String checkLogin(String pass) {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(SIGNUP_TABLE, null, "pwd" + "='" + pass.trim()
                + "'", null, null, null, null);

        if (cursor == null || cursor.getCount() == 0)
            return "";
        cursor.moveToFirst();
        String password = cursor.getString(cursor.getColumnIndex("pwd"));
        return password;

    }
    public String checkLogin2(String email) {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(SIGNUP_TABLE, null, "email" + "='" + email.trim()
                + "'", null, null, null, null);

        if (cursor == null || cursor.getCount() == 0)
            return "";
        cursor.moveToFirst();
        String emailid = cursor.getString(cursor.getColumnIndex("email"));
        return emailid;

    }
    public String checkLogin3(String signupid) {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(SIGNUP_TABLE, null, "sid" + "='" + signupid.trim()
                + "'", null, null, null, null);

        if (cursor == null || cursor.getCount() == 0)
            return "";
        cursor.moveToFirst();
        String emailid = cursor.getString(cursor.getColumnIndex("sid"));
        return emailid;

    }



    // Getting All Signup User

    public List<SignUp> getAllSignup() {
        List<SignUp> signuplist = new ArrayList<SignUp>();

        String select_statement = "SELECT * FROM " + SIGNUP_TABLE;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor c = db.rawQuery(select_statement, null);

        if (c.moveToPosition(0)) {
            do {
                SignUp signup = new SignUp();
                signup.setFname(c.getString(0));
                signup.setLname(c.getString(1));
                signup.setEmail(c.getString(2));
                signup.setPwd(c.getString(3));

                signuplist.add(signup);

            } while (c.moveToNext());
        }
        c.close();
        return signuplist;
    }

    public List<Account> getAllAccounts() {
        List<Account> accountlist = new ArrayList<Account>();

        String select_statement = "SELECT * FROM " + TABLE_ACCOUNT;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor c = db.rawQuery(select_statement, null);

        if (c.moveToPosition(0)) {
            do {
                Account account = new Account();
                account.setAcctname(c.getString(0));
                account.setAcctheadname((c.getString(1)));
                account.setopenbal(((c.getString(2))));

                accountlist.add(account);

            } while (c.moveToNext());
        }

        c.close();
        return accountlist;

    }

    // Updating single contact
    public int updateContact(User user) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_ID, user.getId());
        values.put(KEY_PWD, user.getPwd());

        // updating row
        return db.update(TABLE_SIGNIN, values, KEY_ID + " = ?",
                new String[] { String.valueOf(user.getId()) });
    }

    // Deleting single contact
    public void deleteContact(User user) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_SIGNIN, KEY_ID + " = ?",
                new String[] { String.valueOf(user.getId()) });
        db.close();
    }

    // Deleting single Signup
    public void deleteSignup(SignUp signup) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(SIGNUP_TABLE + " = ?", null,
                new String[] { String.valueOf(signup.getEmail()) });
        db.close();
    }

    public int updateAccount(Account account) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(OPEN_BAL, account.open_bal);
        Log.i("Result for Inside updateaccount", "" + values);

        // return db.update(TABLE_ACCOUNT, values, "openbal"+"="+5000, null);

        // updating row

        final String[] whereArgs = { account.Acct_id.toString() };
        return db.update(TABLE_ACCOUNT, values, ACCT_ID + " = "
                + account.Acct_id.toString(), null);
        // new String[] { String.valueOf(ACCT_ID) });

    }

    // Getting contacts Count

    public int getContactsCount() {
        String countQuery = "SELECT  * FROM " + TABLE_SIGNIN;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();

        // return count
        return cursor.getCount();
    }

}

解决方案

After login is authorized, you can save the user id to SharedPreferences, and then call your queries by that id which is saved in SharedPreferences till the user is logged out.

This is your SharedPreferences class, which is static so you can reach from every activity.

public class SharedPref {

    public static void setDefaults(String key, String value, Context context) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(key, value);
        editor.commit();
    }

    public static String getDefaults(String key, Context context) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        return preferences.getString(key, null);
    }

}

This is how you are going to set and get your user id information.

Save to SharedPreferences

   // after user is logged in successfully, save the user id to sharedpref
    SharedPref.setDefaults("user_id", "user id is written here", context);

Get from SharedPreferences

SharedPref.getDefaults("user_id", getApplicationContext())

这篇关于如何使用SQLite数据库来显示整个应用程序的登录方式的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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