android - multiple table sqlite database -


i new sqlite database , want make 2 tables:

1) my_folders(     folder_id       integer primary key autoincrement,      folder_tite     text not null     currency        text      folder_descrip  text     folder_pic      text );  2) table my_expenses(     log_id      integer primary key autoincrement,     e_folder_id integer     name        text not null,      amount      integer     date        numeric not null     time        numeric not null     notes       text     foreign key(e_folder_id) references my_folders(folder_id) ); 

my question how implement 2nd table? can directly add codes create 2nd table "my_expenses" in same dbadapter file? or should seperate tables in different files in https://stackoverflow.com/a/5899110/1398267? if that's case, codes required insert new record in table my_folders , my_expenses?

i created 1 table , can add new record table through piece of codes:

button b1 = (button) findviewbyid(r.id.bnext);  b1.setonclicklistener(new onclicklistener()          { public void onclick(view v)              {                 db.open();                 db.insertfolder(getfoldertitle.gettext().tostring(),                          getcurrency.getselecteditem().tostring(), getfolderdescription.gettext().tostring());                 db.close();             }         } 

here database codes:

public class dbadapter  {     public static final string key_rowid = "_id";     public static final string key_name = "name";     public static final string key_currency = "currency";     public static final string key_notes = "notes";     private static final string tag = "dbadapter";      private static final string database_name = "mydb";     private static final string database_table = "my_folders";     private static final int database_version = 1;      private static final string database_create =              "create table my_folders (_id integer primary key autoincrement, "             + "name text not null, currency text not null, notes text not null);";      private final context context;     private databasehelper dbhelper;     private sqlitedatabase db;      public dbadapter(context ctx)      {         this.context = ctx;         dbhelper = new databasehelper(context);     }      private static class databasehelper extends sqliteopenhelper      {         databasehelper(context context)          {             super(context, database_name, null, database_version);         }          @override         public void oncreate(sqlitedatabase db)          {             try              {                 db.execsql(database_create);             }              catch (sqlexception e)              {                 e.printstacktrace();             }         }          @override         public void onupgrade(sqlitedatabase db, int oldversion, int newversion)          {             log.w(tag, "upgrading database version " + oldversion + " "                     + newversion + ", destroy old data");             db.execsql("drop table if exists my_folders");             oncreate(db);         }     }      // ---opens database---     public dbadapter open() throws sqlexception      {         db = dbhelper.getwritabledatabase();         return this;     }      // ---closes database---     public void close()      {         dbhelper.close();     }      // ---insert folder database---     public long insertfolder(string name, string currency, string notes)      {         contentvalues initialvalues = new contentvalues();         initialvalues.put(key_name, name);         initialvalues.put(key_currency, currency);         initialvalues.put(key_notes, notes);         return db.insert(database_table, null, initialvalues);     }      // ---deletes particular folder---     public boolean deletefolder(long rowid)      {         return db.delete(database_table, key_rowid + "=" + rowid, null) > 0;     }      // ---deletes folders---     public boolean deleteall()     {         return db.delete(database_table, "1", null) > 0;     }      // ---retrieves folders---     public cursor getallfolders()      {         return db.query(database_table, new string[]                  {key_rowid, key_name, key_currency, key_notes}, null, null, null, null, null);     }      // ---retrieves particular folder---     public cursor getfolder(long rowid) throws sqlexception      {         cursor mcursor = db.query(true, database_table, new string[]                  { key_rowid, key_name, key_currency, key_notes },                  key_rowid + "=" + rowid, null, null, null, null, null);         if (mcursor != null)          {             mcursor.movetofirst();         }         return mcursor;     }      // ---updates folder---     public boolean updatefolder(long rowid, string name, string currency, string notes)      {         contentvalues args = new contentvalues();         args.put(key_name, name);         args.put(key_currency, currency);         args.put(key_notes, notes);         return db.update(database_table, args, key_rowid + "=" + rowid, null) > 0;     } } 

you have execute more queries in oncreate method:

@override public void oncreate(sqlitedatabase db) {     db.execsql(create_dbinfo); //create table db_info as...     db.execsql(create_type); //create table ...     db.execsql(create_tag);  //create table ... constant strings!     db.execsql(create_category);     db.execsql(create_resource);     db.execsql(create_restag);     db.execsql(create_rescat);     db.execsql(create_typecat);     db.execsql("insert dbinfo values(-1,0)");     db.execsql("insert tag values(1,'no tag',0)"); } 

this short example project did time ago. constants create table query defined (exactly did first table).

just write new creation queries , you're go.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -