1

I am trying to insert multiple rows in a sqlite database. I have created a SqliteOpenHelper class and have created a database and a table. Now I need to do is to insert multiple rows in the database.

Say we have five rows to insert at once, what is the best and efficient way to accomplish it.

INSERT INTO `events` (`_id`, `event_name`, `start_date`, `end_date`, `event_city`, `event_state`, `event_pic`, `event_desc`, `wiki_url`, `event_cat`) VALUES
(1, 'Purna Kumbh Fair 2013', '2013-01-27', '2013-03-10', 'Allahabad', 'Uttar Pradesh', 'img/kumbh.jpg', 'Kumbh Fair is a mass Hindu pilgrimage of faith in which Hindus gather at a sacred river for a bath in the river. It is held every third year at one of the four places by rotation: Haridwar, Prayag (Allahabad), Nasik and Ujjain.', 'http://en.wikipedia.org/wiki/Kumbh_Mela', 2),
(2, 'Taj Mahotsav 2013', '2013-02-18', '2013-02-27', 'Agra', 'Uttar Pradesh', 'img/taj-mahotsav.jpg', 'aj Mahotsav is an annual 10 day (from 18 to 27 February) event at Shilpgram in Agra, India. Every year in February tourists flock to Agra for this mega event, just a stone throw from the majestic Taj Mahal. This festival invokes the memories of old Mughal era and nawabi style prevalent in Uttar Pradesh in 18th and 19th centuries.', '', 0),
(3, 'Khajuraho Dance festival', '2013-02-01', '2013-02-08', 'Khajuraho', 'Madhya Pradesh', 'img/Khajuraho-Dance-Festival.jpg', 'One week long festival of classical dances held annually against the spectacular backdrop of the magnificently lit Khajuraho temples in Chhatarpur district of Madhya Pradesh.', '', 0),
(4, 'Holi - Festival of Colors', '2013-03-26', '2013-03-27', 'National', 'Festival', 'img/holi.jpg', 'Holi - The Festival of Colors marks the beginning of ceremonies being the first festival in the Hindu calendar. On this day, people greet each other with colours and celebrate the occasion with much gaiety and excitement.', '', 0),
(5, 'Elephant Festival', '2013-03-26', '2013-03-26', 'Jaipur', 'Rajasthan', 'img/elephant.jpg', 'Jaipur Elephant Festival, perhaps the only festival where Elephants are given prime importance.During the festival, Jaipur comes alive with elephants, dancers and musicians which draw visitors from all over the world.', '', 0),
divyang7
  • 309
  • 3
  • 10
  • 22

1 Answers1

-1

Try to make a separate class for data base like

public class databasehandler extends SQLiteOpenHelper{

private static final int DATABASE_VERSION = 5;
        // Database Name
        private static final String DATABASE_NAME = "atabase";

        // Contacts table name
        private static final String TABLE_Name = "task";
        // Contacts Table Columns names
        private static final String event_name= "event_name";
        private static final String start_date= "start_date";
        private static final String KEYID="id";
        private static final String  end_date= "end_date";
        private static final String event_pic= "event_pic";
        private static final String  event_desc= "event_desc";
        private static final String wiki_url= "wiki_url";
        private static final String event_cat= "event_cat";


public databasehandler(Context context){
                super(context, DATABASE_NAME, null, DATABASE_VERSION);
            }

@Override
            public void onCreate(SQLiteDatabase db) {
                // TODO Auto-generated method stub
                String CREATETABLE = "CREATE TABLE " + TABLE+ "("
                        + KEYID + " INTEGER PRIMARY KEY AUTOINCREMENT," + event_name+ " TEXT,"
                        + start_date+ " TEXT," + end_date+" TEXT "+ ..... so on ")";
                                db.execSQL(CREATE_TASK_TABLE);
                db.execSQL(CREATETABLE );

            }



@Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                // Drop older table if existed
                db.execSQL("DROP TABLE IF EXISTS " + TABLE);
                                // Create tables again
                onCreate(db);

            }

void adddata(Classname Object) {
                SQLiteDatabase db = this.getWritableDatabase();

                ContentValues values = new ContentValues();
                values.put(event_name, Object.getevent_name()); 
                values.put(start_date, Object.gestart_date()); 
                values.put(TASK_ID, Object.getTASK_ID());
                                        insert all values....

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

}

and now Classname.java

public class Classname {
    //private variables name like
              String event_name;
              .... so on

        // Empty constructor
        public Classname (){

        }
        // constructor
        public Classname (String  event_name, String start_date,String end_date.....){
            this.event_name= event_name;
            this.start_date=start_date;
            this.end_date=end_date;
        }


        public int getID(){
            return this._id;
        }

        // setting id
        public void setID(int id){
            this._id = id;
        }
                   and all the get and set methods....



}

and in your main class:-

databasehandler handler=new databasehandler (context);
handler.adddata(new Classname(event_name, start_date,end_date....));

try this it will helo you :) and also check this link http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

Hafiz.M.Usman
  • 223
  • 3
  • 21
  • I think It will add a single record to the database...I am having a sql file and its having queries for inserting more than 500 records at once...so I was asking if there is any efficient way to insert 500 or more values at once...its like bulkinsert.. – divyang7 Jul 27 '13 at 06:32
  • I think there is not an option to insert more then 500 records at one you have too run query 500 times to insert 500 records.... – Hafiz.M.Usman Jul 27 '13 at 11:52
  • it depends upon your logic you have to Handel it according to you situation I already uploaded the complete syntax by using this you can implement you logic easily – Hafiz.M.Usman Jul 27 '13 at 13:35