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

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

Δημοσ.

Καλησπέρα,

Τρέχω αυτό το ερώτημα σε Sql command

 SET @r1 = GeomFromText('Polygon((1 1, 5 1,5 5,1 5,0 1 1))');
 SET @r2 = GeomFromText('Polygon((1 1,5 1,5 5,1 5,1 1))');
 select MBROVERLAPS(@r1,@r2);
 

 

¨και βγάζει αποτέλεσμα χωρίς κανένα πρόβλημα.

 

΄Το παραπάνω ερώτημα σε java:

και βγάζει error:

query =    
       "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" +

       "SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" +

       "select MBROVERLAPS(@r1,@r2);" ;

 

 

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in 
your SQL syntax; check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'SET @r2 = GeomFromText('Polygon((1 1,5 1,5 5,1 
5,1 1))');select MBROVERLAPS(@r1' at line 2
 

Ο κώδικας μου

 

 public String getoverlap(Rectangle recA, Rectangle recB){
        String result = "-1";
        String query;

        query =    
                "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" +
                "SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" +
               "select MBROVERLAPS(@r1,@r2);" ;

  
          System.out.println("query--:\n "+query);
       
          
         try {
            this.statement = this.connection.createStatement();
            ResultSet  rs = this.statement.executeQuery(query);
            System.out.println("kkk:" +rs.toString());
           
            if(rs!=null){
                result = rs.getString("MBROVERLAPS(@r1,@r2)");
            }
            else{
                System.out.println("Debug: lathos sthn getoverlap");
            }
           
             statement.close();
        } catch (SQLException ex) {
            System.out.println("debug: sqlEcxeption");
            Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
        }
         
         return result;
    }

Που είναι ακριβώς το λαθος στο παραπάνω ερώτημα?
Ευχαριστώ

Δημοσ.

Το έλυσα το προβληματάκι που υπήρχε!!! :)

To λάθος ήταν ότι εκτελουσα 3 εντολές sql σε ένα query... Αυτό γίνετε στο sql command αλλά όχι στη java... 

query = "SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\');\n" 
       +"SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\');\n" 
       +"select MBROVERLAPS(@r1,@r2);" ;

 

Χρειάζεται να εκτελούντε μία μία οι εντολές στο statement:

statement = connection.createStatement();
statement.executeQuery("SET @r1 = GeomFromText(\'Polygon((1 1, 5 1,5 5,1 5,1 1))\')";
statement.executeQuery("SET @r2 = GeomFromText(\'Polygon((1 1,5 1,5 5,1 5,1 1))\')");
ResultSet  rs = statement.executeQuery("SELECT MBROVERLAPS(@r1,@r2)");
System.out.println(rs.toString());


 

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

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

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

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

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

Σύνδεση

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

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