2017-09-13 1 views
0
package Login; 

import java.sql.*; 
import static java.sql.DriverManager.getConnection; 

public class DB_Operation { 
    private Connection conn; 
    private Statement st; 
    private ResultSet rs; 


    public Connection getConnection(){ 
     try{ 
      String url="jdbc:mysql://localhost:3306/s_user"; 
      String user="root"; 
      String pass=""; 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn=DriverManager.getConnection(url, user, pass); 

     } 
     catch(SQLException ex){ 
      System.out.println("Error"+ ex.getMessage()); 
     } 
     catch(ClassNotFoundException ex){ 
         System.out.println("Error"+ ex.getMessage()); 


     } 
     finally{ 
      return conn; 
     } 
    } 
    public ResultSet searchQuery(String sql) throws SQLException{ 
    try{ 

     getConnection(); 
     st=conn.createStatement(); 
     rs=st.executeQuery(sql); 

    } 
    catch(SQLException ex){ 
     System.out.println("Error"+ex.getMessage()); 
    } 
    return rs; 
    } 
} 

Ce code est censé relier le projet Netbeans à la base de données dans le serveur Wamp. Sous le package Connexion, j'ai créé une JavaClass appelée DB_Operation qui a le code pour la connexion à la base de données. Bien qu'il n'y ait aucune erreur affichée dans le code, une erreur de compilation indique "Class" Login.DB_Operation "n'a pas de méthode principale"Quand je lance mon code NetBeans pour l'utilisateur une connexion, il montre erreur « Login.DB_Opreration n'a pas de méthode principale »

+0

Où exécutez-vous ce code? vous pouvez appeler la méthode 'searchQuery (String sql)' dans la méthode principale. la plupart des programmes Java commencent à partir de la méthode principale. –

Répondre

0

Je suppose que vous avez essayé d'exécuter le projet/fichier. Un fichier ne sera pas exécuté s'il n'y a pas de méthode principale, de même pour un projet et une classe principale. Si vous essayez d'exécuter le fichier, vous aurez besoin d'une méthode principale. La méthode principale est la méthode définie pour être appelée au début d'une application. Sans cela, il n'y a pas de place pour commencer à courir. Il ressemble à ceci:

public static void main(String[] args) { 
    // call the other necessary methods to run the program. 
} 

En outre, étant donné que vous avez conn comme un champ qui getConnection() attribue et que vous appelez getConnection() sans l'assigner à une variable; il n'y a pas besoin de retourner une connexion, vous devriez rendre ce retour nul.

Vous pouvez essayer d'appeler getConnection() à partir de la méthode principale puis (vous devrez en faire une méthode statique).

+0

getConnection() est appelée sous le bloc try qui fait partie de searchQuery(). Dois-je écrire tout le bloc try-catch dans la méthode principale? –

+0

La SQLException qui peut apparaître dans searchQuery() est déjà capturée dans searchQuery(), vous n'avez donc pas besoin de la lancer. – Touniouk

+0

Soit vous n'avez pas le try-catch dans searchQuery() et lancez une exception, auquel cas vous avez besoin du try-catch pour appeler searchQuery(). Ou si vous avez le try-catch dans searchQuery() vous n'avez pas besoin de lancer une exception de sorte que vous n'avez pas besoin de try-catch pour appeler searchQuery(), mais il n'est pas nécessaire d'avoir deux blocs try-catch. – Touniouk