Προς το περιεχόμενο

java & mysql


Προτεινόμενες αναρτήσεις

Δημοσ.

εχω δημιουργησει ενα java servlet το οποιο παιρνει πληροφοριες που δινει ο χρηστης απο ενα jsp αρχειο και τις στελνει σε ενα java αρχειο το οποιο συνδεεται με μια βαση δεδομενων και βασει τα δεδομενα που εχει εισαγει ο χρηστης επιστρεφει και τα αναλογα δεδομενα απο την βαση. ολα τρεχουν τελεια εκτος απο το java αρχειο το οποιο δεν μπορει να συνδεθει με την βαση και να τραβηξει τα δεδομενα της. το χω ψαξει αρκετα και δεν βρει καποιο λαθος στον κωδικα αλλα δεν μπορω να βρω τι φταει...

παρακατω ειναι ο κωδικας του java αρχειου

 

>
package finalProject;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class dbreadNcalculate {
public static void dbconnect (String thl, int choice, StringBuilder res) throws Exception {
 ResultSet result;
 Connection con;

 try{
  Class.forName("com.mysql.jdbc.Driver"); //Apoktoume prosvash ston odhgo mesw tou jar arxeiou


  con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/costsdb","root","root");//Dhmiourgoume mia metavliti gia tin syndesh
  //jdbc:mysql://localhost:3306/costsdb --> auth einai h vash pou xrhsimopoioume
  //root einai o xrhsths ths vashs dedomenwn
  //root einai kai o kwdikos tou xrhsth ths vashs dedomenwn
  PreparedStatement statement = (PreparedStatement) con.prepareStatement("SELECT MONTH(hmerom_klhshs),TIME_TO_SEC(TIMEDIFF(termatismos_klhshs,enarksh_klhshs)) FROM klhseis where ar_thl='"+thl+"'");
  /*Zitame ta ekshs dedomena apo thn vash: mhnas kai diarkeia klhsewn gia ton
   xrhsth me arithmou thlefwnou thl(opou thl o arithmos pou pliktrologisame)*/
  result = statement.executeQuery();  //Dhmiourgoume mia metavliti gia tin ektelesh tou erwthmatos mas
 
	   
  int month,sec,i;
  int[] diarkeia = new int[12];				   //enas monodiastatos pinakas me tin diarkeia klhsewn ana mhna
  int[] ar_klhsewn = new int[12];				 //enas monodiastatos pinakas me ton arithmo klhsewn ana mhna
  double kostos = 0;
  int mo,syn_mo,syn_klhsewn,syn_diarkeia;
 
 
  for ( i = 0 ; i <= 11 ; i++){				    //arxikopoihsh twn metavlhtwn mas
   diarkeia[i]=0;
   ar_klhsewn[i]=0;
  }
 
  
 while(result.next()){	   //Oso uparxoun dedomena apo to result(dhladh apo to apotelesma tou erwthamatos mas)

  month=Integer.parseInt(result.getString(1));   // to prwto string eisagete sthn metavliti month(typou int)
  sec=Integer.parseInt(result.getString(2));	   // to deutero string eisagete sthn metavliti sec(typou int)
  if (sec<60){
   sec=60;
   }								    // elaxisth diarkeia klhshs ta 60 sec

  diarkeia[month-1]= diarkeia[month-1] + sec;    // synolo diarkeias klhsewn se second gia ton ka8e mhna
  ar_klhsewn[month-1]=ar_klhsewn[month-1] +1;    // synolo klhsewn gia ka8e mhna
 
  }
 
  if(choice==1){  // mhniaio antitimo logariasmou
  
   res.append ("<table border='2'><tr><th><b><u>Μήνας</u></b></th><th><b><u>Χρέωση</u></b></th></tr>");  // typwnei stin html enan pinaka me border 2 kai tis sthles Mhnas kai Xrewsh
   for (i=0;i<=11;i++){
 if (diarkeia[i]<=900){	 // 900 = 15 * 60 (ta 15 lepta se sec)
  kostos = 10;		   //an h synolikh diarkeia klhsewn einai katw twn 15 leptwn,tote plirwnoume mono to pagio 10 euro
 }else {
 
  long differencem = (diarkeia[i] - 900)/60 ;
  long differences = (diarkeia[i] - 900)%60 ;
  if (differences > 0){
   differencem = differencem + 1 ;
  }
 
  kostos = (differencem * 0.12) + 10 ;
 }

 res.append("<tr><td>").append(i+1).append("</td><td>").append(kostos).append("</td></tr>");  //typwnei kainourgia grammh ston pinaka me ton arithmo tou mhna kai tin xrewsh
   }
   res.append ("</table>");  //kleinoume ton pinaka stin html
  
  }
 
  else if (choice==2){  //ypologismos meswn orwn diarkeias klhshs ana hmerologiako mina kai typwsh autwn se pinaka
  
   res.append ("<table border='1'><tr><th>Μήνας</th><th>Μέσος όρος κλήσης</th></tr>");
   for (i=0;i<=11;i++){
 mo=0;
 if(ar_klhsewn[i]>0){						 //an yparxoun dhladh klhseis ton sygkekrimeno mhna tote ypologise ton meso oro ws to athroisma diarkeiwn autwn dia ton arithmo tous
  mo = diarkeia[i]/ar_klhsewn[i];
 }
 res.append("<tr><td>").append(i+1).append("</td>").append("<td>").append(mo).append("</td></tr>");
   }
   res.append ("</table>");
  }
 
  else if (choice==3){  //ypologismos synolikou mesou orou diarkeis klhshs
  
   syn_diarkeia = 0;
   syn_klhsewn = 0;
   for (i=0;i<=11;i++){
 syn_diarkeia = syn_diarkeia + diarkeia[i];
 syn_klhsewn= syn_klhsewn + ar_klhsewn[i] ;
   }
   syn_mo= syn_diarkeia/syn_klhsewn;
  
   res.append ("Ο συνολικός μέσος όρος διάρκειας κλήσης είναι ").append(syn_mo).append(" δευτερόλεπτα");
  }
 
 }
 catch (Exception e)
 {}
 
}
}  

Δημοσ.

Τι error σου βγάζει στα logs του server;

Το αρχείο του driver υπάρχει;

Εχεις βαλει τον connector της mysql στο IDE σου και στο φακελο του app server;

Τα στοιχεία εισόδου στην βάση ειναι σωστά; Γενικά υπάρχει connectivity προς την βαση από τον υπολογιστή με το servlet;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...