How to Design this Class while Reding a Csv File.

i want to make this more Design orinted. This code is for reading A csv file and scnning it for Duplicate data in that Csv file.public Vector upLoadCsv(String csvFile)throws Exception

{

boolean flag =false;

Connection conn=null;

PreparedStatement stmt=null;

Vector upload_data=new Vector();

patternMapDescs =new Vector();

patternFroms=new Vector();

patternTos=new Vector();

oprNetIds=new Vector();

circleIds=new Vector();

ldcaIds=new Vector();

sdcaIds=new Vector();

try{

fileOut =new FileOutputStream(patrnBulkFailureFilePath,true);

patternMapList=readFile(csvFile);

System.out.println("PatternMapList is "+patternMapList);

Vector Patter_From=(Vector)patternMapList.get(0);

Vector Pattern_To=(Vector)patternMapList.get(1);

Vector Opr_Net_Id=(Vector)patternMapList.get(2);

Vector Circle_Id=(Vector)patternMapList.get(3);

Vector Ldca_Id=(Vector)patternMapList.get(4);

Vector Sdca_Id=(Vector)patternMapList.get(5);

Vector Msc_Id=(Vector)patternMapList.get(6);

Vector Cell_Id=(Vector)patternMapList.get(7);

Vector Pattern_Desc=(Vector)patternMapList.get(8);

try

{

conn = DBHelper.getConnection();

System.out.println("Size is "+Patter_From.size());

for(int i=0;i<Patter_From.size();i++)

{

try

{

int result = 0;

System.out.println("Count value is "+i);

stmt = conn.prepareStatement("update lcorating.PATTERN_MAP set PATTERN_FROM=?,PATTERN_TO=?,OPR_NET_ID=?,CIRCLE_ID=?,LDCA_ID=?,SDCA_ID=?,MSC_ID=?,CELL_ID=?,PATTERN_DESC=? where pattern_from=? and pattern_to=?");

stmt.setString(1,(String)Patter_From.get(i));

stmt.setString(2,(String)Pattern_To.get(i));

stmt.setString(3,(String)Opr_Net_Id.get(i));

stmt.setString(4,(String)Circle_Id.get(i));

stmt.setString(5,(String)Ldca_Id.get(i));

stmt.setString(6,(String)Sdca_Id.get(i));

stmt.setString(7,(String)Msc_Id.get(i));

stmt.setString(8,(String)Cell_Id.get(i));

stmt.setString(9,(String)Pattern_Desc.get(i));

stmt.setString(10,(String)Patter_From.get(i));

stmt.setString(11,(String)Pattern_To.get(i));

result = stmt.executeUpdate();

System.out.println("result is "+result +"for "+(String)Patter_From.get(i));

if(result==1)

{

upload_data.add((String)Patter_From.get(i));

upload_data.add((String)Pattern_To.get(i));

upload_data.add((String)Opr_Net_Id.get(i));

upload_data.add((String)Circle_Id.get(i));

upload_data.add((String)Ldca_Id.get(i));

upload_data.add((String)Sdca_Id.get(i));

upload_data.add((String)Msc_Id.get(i));

upload_data.add((String)Cell_Id.get(i));

upload_data.add((String)Pattern_Desc.get(i));

patternFroms.add((String)Patter_From.get(i));

patternTos.add((String)Pattern_To.get(i));

oprNetIds.add((String)Opr_Net_Id.get(i));

circleIds.add((String)Circle_Id.get(i));

ldcaIds.add((String)Ldca_Id.get(i));

sdcaIds.add((String)Sdca_Id.get(i));

patternMapDescs.add((String)Pattern_Desc.get(i));

}

if(result==0)

{

stmt = conn.prepareStatement("insert into lcorating.PATTERN_MAP values(?,?,?,?,?,?,?,?,?)");

stmt.setString(1,(String)Patter_From.get(i));

stmt.setString(2,(String)Pattern_To.get(i));

stmt.setString(3,(String)Opr_Net_Id.get(i));

stmt.setString(4,(String)Circle_Id.get(i));

stmt.setString(5,(String)Ldca_Id.get(i));

stmt.setString(6,(String)Sdca_Id.get(i));

stmt.setString(7,(String)Msc_Id.get(i));

stmt.setString(8,(String)Cell_Id.get(i));

stmt.setString(9,(String)Pattern_Desc.get(i));

stmt.executeUpdate();

upload_data.add((String)Patter_From.get(i));

upload_data.add((String)Pattern_To.get(i));

upload_data.add((String)Opr_Net_Id.get(i));

upload_data.add((String)Circle_Id.get(i));

upload_data.add((String)Ldca_Id.get(i));

upload_data.add((String)Sdca_Id.get(i));

upload_data.add((String)Msc_Id.get(i));

upload_data.add((String)Cell_Id.get(i));

upload_data.add((String)Pattern_Desc.get(i));

}

}

catch(Exception e)

{

System.out.println("Exception entry "+i);

String strFailure = (String)Patter_From.get(i) +","+

(String)Pattern_To.get(i) +","+

(String)Opr_Net_Id.get(i) +","+

(String)Circle_Id.get(i) +","+

(String)Ldca_Id.get(i) +","+

(String)Sdca_Id.get(i) +","+

(String)Msc_Id.get(i) +","+

(String)Cell_Id.get(i) +","+

(String)Pattern_Desc.get(i)+"," +new java.util.Date()+"\n";

System.out.println("writing "+ (String)Patter_From.get(i));

fileOut.write(strFailure.getBytes());

continue;

}

}

}catch(Exception e)

{

System.out.println("Excepion is "+e);

}

flag=true;

}

catch(Exception e)

{

flag=false;

System.out.println("Exception in Reading File===>"+e);

}

System.out.println("Uploaded data is ");

System.out.println(upload_data);

return upload_data;

}

// This method "readFile" Reads the CSV file in the form of StringToken

private List readFile(String fileName)

{

BufferedReaderbr;

Stringrecord;

StringTokenizerst;

VectorvPatternFrom=new Vector();

Vector vectorPatternFrom=new Vector();

Vector vectorPatternTo=new Vector();

Vector vectorOpertorNetworkId=new Vector();

Vector vectorCircleId=new Vector();

Vector vectorLdcaId=new Vector();

Vector vectorSdcaId=new Vector();

Vector vectorMscId=new Vector();

Vector vectorCellId=new Vector();

Vector vectorPatternDesc=new Vector();

ArrayList totalList=new ArrayList();

boolean isExist=false;

boolean duplicateOrgNUmFlag=false;

try

{

br =new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));

while ((record = br.readLine()) !=null)

{

st =new StringTokenizer(record,",");

try

{

while (st.hasMoreTokens())

{

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

vPatternFrom.add(st.nextToken());

}

}

catch(NoSuchElementException nseex)

{

System.out.println("Record without valid data :: " + record);

}

}

}

catch(FileNotFoundException fnfex)

{

System.out.println("exception is"+fnfex.toString());

}

catch (IOException ioex)

{

System.out.println("exception is"+ioex.toString());

}

catch(Exception e){

System.out.println("praveen is stupid");

}

System.out.println("vPatternFrom"+vPatternFrom);

int noOfRecords = vPatternFrom.size();

//System.out.println("Size of record is "+noOfRecords);

for(int i=0;i<vPatternFrom.size();i=i+9)

{

String sPatternFrom=(String)vPatternFrom.get(i);

vectorPatternFrom.add(sPatternFrom);

String sPatternTo=(String)vPatternFrom.get(i+1);

vectorPatternTo.add(sPatternTo);

String sOpertorNetworkId=(String)vPatternFrom.get(i+2);

vectorOpertorNetworkId.add(sOpertorNetworkId);

String sCircleId=(String)vPatternFrom.get(i+3);

vectorCircleId.add(sCircleId);

String sLdcaId=(String)vPatternFrom.get(i+4);

vectorLdcaId.add(sLdcaId);

String sSdcaId=(String)vPatternFrom.get(i+5);

vectorSdcaId.add(sSdcaId);

String sMscId=(String)vPatternFrom.get(i+6);

vectorMscId.add(sMscId);

String sCellId=(String)vPatternFrom.get(i+7);

vectorCellId.add(sCellId);

String sPatternDesc =(String)vPatternFrom.get(i+8);

vectorPatternDesc.add(sPatternDesc);

}

totalList.add(vectorPatternFrom);

totalList.add(vectorPatternTo);

totalList.add(vectorOpertorNetworkId);

totalList.add(vectorCircleId);

totalList.add(vectorLdcaId);

totalList.add(vectorSdcaId);

totalList.add(vectorMscId);

totalList.add(vectorCellId);

totalList.add(vectorPatternDesc);

ArrayList rrList=new ArrayList();

try{

rrList=verifyTotalPatternData(totalList);

}catch(Exception e){

System.out.println("excpetion is bothering");

}

return rrList;

}

public ArrayList verifyTotalPatternData(ArrayList totalList)

{

Vector pattern_from=(Vector)totalList.get(0);

Vector pattern_to=(Vector)totalList.get(1);

Vector opr_net_id=(Vector)totalList.get(2);

Vector circle_id=(Vector)totalList.get(3);

Vector ldca_id=(Vector)totalList.get(4);

Vector sdca_id=(Vector)totalList.get(5);

Vector msc_id=(Vector)totalList.get(6);

Vector cell_id=(Vector)totalList.get(7);

Vector pattern_desc=(Vector)totalList.get(8);

String strFailure ="";

for(int i=0;i<pattern_from.size();i++){

for(int j=i+1;j<pattern_from.size();j++){

if((pattern_from.get(j)).equals(pattern_from.get(i))){

if((pattern_to.get(j)).equals(pattern_to.get(i))){

try{

strFailure=(String)pattern_from.get(i) +","+

(String)pattern_to.get(i) +","+

(String)opr_net_id.get(i) +","+

(String)circle_id.get(i) +","+

(String)ldca_id.get(i) +","+

(String)sdca_id.get(i) +","+

(String)msc_id.get(i) +","+

(String)cell_id.get(i) +","+

(String)pattern_desc.get(i) +"," +new java.util.Date()+"\n";

//System.out.println("writing "+ (String)pattern_from.get(i));

fileOut.write(strFailure.getBytes());

}

catch(Exception e)

{

System.out.println("Exception while adding entry in bulkFailureData.csv "+e);

}

pattern_from.removeElementAt(j);

pattern_to.removeElementAt(j);

opr_net_id.removeElementAt(j);

circle_id.removeElementAt(j);

ldca_id.removeElementAt(j);

sdca_id.removeElementAt(j);

msc_id.removeElementAt(j);

cell_id.removeElementAt(j);

pattern_desc.removeElementAt(j);

j--;

}

}

}

}

ArrayList ret_list =new ArrayList();

ret_list.add(pattern_from);

ret_list.add(pattern_to);

ret_list.add(opr_net_id);

ret_list.add(circle_id);

ret_list.add(ldca_id);

ret_list.add(sdca_id);

ret_list.add(msc_id);

ret_list.add(cell_id);

ret_list.add(pattern_desc);

//System.out.println("The filtered list is "+ret_list);

return ret_list;

}

>

[16178 byte] By [rajpuniaa] at [2007-10-2 13:58:24]
# 1

I was bored, so I took a stab at cleaning your code up a bit. You need

to take advantage of the Collections API, and you desparately

need to learn how to use data structures. Some would argue

that my get?Statement methods are really bad, fyi. They might

very well be right -- it's hard to tell from the few methods provided.

You should also take a serious look at Log4j, or at least the

java standard logger.

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.IOException;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Collection;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

import java.util.Vector;

public class Foo {

private final FileOutputStream fileOut;

public Foo() throws FileNotFoundException {

this.fileOut = new FileOutputStream(patrnBulkFailureFilePath, true);

}

public Set uploadCsv(final String csvFile) {

final Set uploadedData = new HashSet();

Connection conn = null;

Vector upload_data = new Vector();

final Collection patternDataSet = this.readFile(csvFile);

try {

conn = DBHelper.getConnection();

for (final Iterator i = patternDataSet.iterator(); i.hasNext(); ) {

final PatternData patternData = (PatternData) i.next();

final PreparedStatement updateStatement =

patternData.getUpdateStatement(conn);

try {

final int result = updateStatement.executeUpdate();

if (result == 1) {

uploadedData.add(patternData);

}

if (result == 0) {

final PreparedStatement insertStatement =

patternData.getInsertStatement(conn);

insertStatement.executeUpdate();

uploadedData.add(patternData);

}

} catch (final SQLException se) {

final String errorMsg =

patternData.toString() + "," +

System.currentTimeMillis();

this.fileOut.write(errorMsg.getBytes());

}

}

} catch (final SQLException se) {

System.err.println("Unexpected SQL Exception");

se.printStackTrace(System.err);

}

return uploadedData;

}

private Collection readFile(final String fileName) {

final FileReader fileReader;

final BufferedReader bufferedReader;

final Set patternData = new HashSet();

try {

fileReader = new FileReader(fileName);

bufferedReader = new BufferedReader(fileReader);

while (bufferedReader.ready()) {

final String dataLine = bufferedReader.readLine();

final String[] values = dataLine.split(",");

final PatternData data = new PatternData(values);

if (patternData.contains(data)) {

final String errorMsg =

data.toString() + "," + System.currentTimeMillis();

this.fileOut.write(errorMsg.getBytes());

} else {

patternData.add(new PatternData(values));

}

}

} catch (final FileNotFoundException fnfe) {

System.err.println("Unable to locate file: " + fileName);

} catch (final IOException ioe) {

System.err.println("Unexpected IO Exception");

ioe.printStackTrace(System.err);

}

return patternData;

}

private static class PatternData {

private final String patternFrom;

private final String patternTo;

private final String oprNetID;

private final String circleID;

private final String ldcaID;

private final String sdcaID;

private final String mscID;

private final String cellID;

private final String patternDesc;

public PatternData(final String patternFrom, final String patternTo,

final String oprNetID, final String circleID, final String

ldcaID, final String sdcaID, final String mscID,

final String cellID, final String patternDesc) {

this.patternFrom = patternFrom;

this.patternTo = patternTo;

this.oprNetID = oprNetID;

this.circleID = circleID;

this.ldcaID = ldcaID;

this.sdcaID = sdcaID;

this.mscID = mscID;

this.cellID = cellID;

this.patternDesc = patternDesc;

}

public PatternData(final String[] dataValues)

throws IllegalArgumentException {

if (dataValues == null) {

throw new IllegalArgumentException("The dataValues " +

"parameter may not be null.");

}

if (dataValues.length != 9) {

throw new IllegalArgumentException("The dataValues parameter " +

"must have a length of 9, not " + dataValues.length);

}

this.patternFrom = dataValues[0];

this.patternTo = dataValues[1];

this.oprNetID = dataValues[2];

this.circleID = dataValues[3];

this.ldcaID = dataValues[4];

this.sdcaID = dataValues[5];

this.mscID = dataValues[6];

this.cellID = dataValues[7];

this.patternDesc = dataValues[8];

}

public boolean equals(final Object obj) {

if (this == obj) {

return true;

}

if (!(obj instanceof PatternData)) {

return false;

}

final PatternData otherData = (PatternData) obj;

if (this.patternFrom.equals(otherData.patternFrom) &&

this.patternTo.equals(otherData.patternTo)) {

return true;

}

return false;

}

public int hashCode() {

int hash = 17;

hash = 37 * hash + this.patternFrom.hashCode();

hash = 37 * hash + this.patternTo.hashCode();

return hash;

}

public String toString() {

return this.patternFrom + "," + this.patternTo + "," +

this.oprNetID + "," + this.circleID + "," +

this.ldcaID + "," + this.sdcaID + "," + this.mscID + "," +

this.cellID + "," + this.patternDesc;

}

public PreparedStatement getUpdateStatement(final Connection conn)

throws SQLException {

final PreparedStatement statement =

conn.prepareStatement("update lcorating.PATTERN_MAP set " +

"PATTERN_FROM=?,PATTERN_TO=?,OPR_NET_ID=?," +

"CIRCLE_ID=?,LDCA_ID=?,SDCA_ID=?,MSC_ID=?,CELL_ID=?" +

",PATTERN_DESC=? where pattern_from=? and " +

"pattern_to=?");

statement.setString(1, this.patternFrom);

statement.setString(2, this.patternTo);

statement.setString(3, this.oprNetID);

statement.setString(4, this.circleID);

statement.setString(5, this.ldcaID);

statement.setString(6, this.sdcaID);

statement.setString(7, this.mscID);

statement.setString(8, this.cellID);

statement.setString(9, this.patternDesc);

statement.setString(10, this.patternFrom);

statement.setString(11, this.patternTo);

return statement;

}

public PreparedStatement getInsertStatement(final Connection conn)

throws SQLException {

final PreparedStatement statement =

conn.prepareStatement("insert into lcorating.PATTERN_MAP " +

"values(?,?,?,?,?,?,?,?,?)");

statement.setString(1, this.patternFrom);

statement.setString(2, this.patternTo);

statement.setString(3, this.oprNetID);

statement.setString(4, this.circleID);

statement.setString(5, this.ldcaID);

statement.setString(6, this.sdcaID);

statement.setString(7, this.mscID);

statement.setString(8, this.cellID);

statement.setString(9, this.patternDesc);

return statement;

}

}

}

es5f2000a at 2007-7-13 12:03:41 > top of Java-index,Other Topics,Patterns & OO Design...
# 2
The answer Is Very much Discouraging. I accept it is not properly Formatted.But Any developer Know The Solution they should provide it. Because it is aglobal forum.I really owe tothis forum For other queries which I had posted.
rajpuniaa at 2007-7-13 12:03:41 > top of Java-index,Other Topics,Patterns & OO Design...
# 3
Suit yourself.
es5f2000a at 2007-7-13 12:03:41 > top of Java-index,Other Topics,Patterns & OO Design...