Update MySQL table using data from a text file through Java

Posted by Karthi Karthi on Stack Overflow See other posts from Stack Overflow or by Karthi Karthi
Published on 2013-10-29T07:22:40Z Indexed on 2013/10/29 9:54 UTC
Read the original article Hit count: 355

Filed under:
|

I have a text file with four lines, each line contains comma separated values like below file

My file is:

    Raj,[email protected],123455
   kumar,[email protected],23453
   shilpa,[email protected],765468
   suraj,[email protected],876567

and I have a MySQL table which contains four fields

  firstname    lastname      email                phno
  ----------  ----------    ---------            --------
   Raj           babu      [email protected]       2343245
   kumar         selva     [email protected]        23453
   shilpa        murali    [email protected]       765468
   suraj         abd       [email protected]        876567

Now I want to update my table using the data in the above text file through Java.

I have tried using bufferedReader to read from the file and used split method using comma as delimiter and stored it in array. But it is not working. Any help appreciated.

This is what I have tried so far

void readingFile()
    {
        try
        {
            File f1 = new File("TestFile.txt");
            FileReader fr = new FileReader(f1);
            BufferedReader br = new BufferedReader(fr);
            String strln = null;
                        strln = br.readLine();

            while((strln=br.readLine())!=null)
            {
//              System.out.println(strln);
                                 arr = strln.split(",");
                                 strfirstname = arr[0];
                                 strlastname = arr[1];
                                stremail = arr[2];
                                strphno = arr[3];
                                System.out.println(strfirstname + " " + strlastname + " " + stremail +" "+ strphno);
                        } 

//                        for(String i : arr)
//                        {

//                        }


            br.close();
            fr.close();
        }
        catch(IOException e)
        {
            System.out.println("Cannot read from File." + e);
        }

        try
           {
                st = conn.createStatement();
                String query = "update sampledb set email = stremail,phno =strphno where  firstname = strfirstname ";
                st.executeUpdate(query);
                st.close();
                System.out.println("sampledb Table successfully updated.");
            }
             catch(Exception e3)
            {
             System.out.println("Unable to Update sampledb table. " + e3);   
           }

    }

and the output i got is:

Ganesh Pandiyan [email protected] 9591982389
Dass Jeyan [email protected] 9689523645
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
Gowtham Selvan [email protected] 9894189423
    at TemporaryPackages.FileReadAndUpdateTable.readingFile(FileReadAndUpdateTable.java:35)
    at TemporaryPackages.FileReadAndUpdateTable.main(FileReadAndUpdateTable.java:72)
Java Result: 1

@varadaraj: This is the code of yours....

String stremail,strphno,strfirstname,strlastname;
//    String[] arr;
    Connection conn;
    Statement st;
    void readingFile()
    {
        try {
             BufferedReader bReader= new BufferedReader(new FileReader("TestFile.txt"));
             String fileValues;

            while ((fileValues = bReader.readLine()) != null)
            {
                String[] values=fileValues .split(",");
                strfirstname = values[0];
//                strlastname = values[1];
                stremail = values[1];
                strphno = values[2];
                System.out.println(strfirstname + " " + strlastname + " " + stremail +" "+ strphno);
            }
        bReader.close();
    } catch (IOException e) {
        System.out.println("File Read Error");
    }
//                        for(String i : arr)
//                        {

//                        }



        try
           {
                st = conn.createStatement();
                String query = "update sampledb set email = stremail,phno =strphno where  firstname = strfirstname ";
                st.executeUpdate(query);
                st.close();
                System.out.println("sampledb Table successfully updated.");
            }
             catch(Exception e3)
            {
             System.out.println("Unable to Update sampledb table. " + e3);   
           }

    }

© Stack Overflow or respective owner

Related posts about java

Related posts about mysql