recuperar caracteres hindi de la base de datos

He escrito un programa que realiza una búsqueda de la palabra hindi dada en la base de datos mysql y recupera su nombre correspondiente en inglés que está almacenado en la base de datos. Funciona bien cuando doy la palabra hindi directamente en la instrucción select pero me gustaría darlo usando una variable para que pueda ser más general pero no obtengo el resultado para el mismo ... ¿Podría alguien ayudarme con una solución? Gracias por anticiparme

Este es el código que he escrito

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import com.microsoft.sqlserver.jdbc.*;
import java.sql.*;

public class Example {

public static void main(String[] argv) {


    try {

        Class.forName("com.mysql.jdbc.Driver");

        } 
    catch (ClassNotFoundException e) 
        {

        System.out.println("Where is your MySQL JDBC Driver?");
        e.printStackTrace();
        return;

        }


    Connection connection = null;

                         SQLServerDataSource dataSource = new SQLServerDataSource();
                                 dataSource.setServerName("COMP-PC");
                                dataSource.setPortNumber(1433);
                              dataSource.setDatabaseName("concept");
                              dataSource.setUser("root");
                            dataSource.setPassword("abc");

        try
         {
        connection = dataSource.getConnection();
        connection.setAutoCommit(false);
        System.out.println("Connected to server !!!");
         Statement select = connection.createStatement();
         String var="N'हल्दी'";

     ResultSet result = select.executeQuery



               ("SELECT Name, Id FROM MConcept where CName=N'हल्दी'");  
     **// When given like the above statement it works fine 



                 ("SELECT Name, Id FROM MConcept where CName='"+var+" ' "); 
    **//This does not give result 


      System.out.println("Got results:");
      while(result.next()) { // process results one row at a time

      String Name = result.getString(1);
      int ID = result.getInt(2);

       System.out.println("name = " + Name);
       System.out.println("id = " + ID);
       }
      select.close();
     connection.close();
      }




  catch (SQLException e)
  {
   System.out.println("Connection Failed! Check output console");
   e.printStackTrace();
   return;
   }

    if (connection != null)
     {
    System.out.println("Successfully connected!");

     } 
   else 
    {
System.out.println("Failed to make connection!");
    }


   }
 }
Respuesta 1

Su segunda declaración es incorrecta.

Debiera ser

"SELECT Name, Id FROM MConcept where CName=" + var

Pero le recomiendo usar PreparedStatement y leer esta historia de advertencia de inyección SQL -> http://xkcd.com/327/

Respuesta: 2

Actualmente estoy tratando de compilar un proyecto usando ant que usa varias bibliotecas externas (específicamente apache.hwpf y JDom2) distribuidas como archivos .class. Actualmente estoy usando eclipse para editar ...

Intento enviar mensajes a Kafka con una transacción. Entonces, uso este código: try (Producer <Void, String> productor = createProducer (kafkaContainerBootstrapServers)) {productor ....

Tengo 2 Textbox en mi aplicación. 1 para la dirección de origen y otro para la dirección de destino. Ambos son cuadros de texto de Autocompletar y obtengo datos de la API de Google Maps. Dirección de origen == ...

Aquí está el código para el diálogo de alerta que estoy usando: new AlertDialog.Builder (AlertDemo.this) .setTitle ("This is Alert Demo") .setMessage ("¡Aquí hay un mensaje de alerta!") .SetNeutralButton ("Cerrar",. ..