以下代码向我抛出一个异常,通过使用mariadb管理器,这个没有传递mysql,允许我执行executeUpdate,但不执行executeQuery。我寻求解决方案的事实并没有一个是我的理由,因为我没有犯下任何错误。已经重新安装java和mariadb,仍然无法正常工作。谢谢!
这是我的代码:
package Conexion;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class mainPruebas {
public static void main(String[] args)
{
String url = "jdbc:mariadb://127.0.0.1:3306/buscadorpersonas?autoReconnect=true&useSSL=false";
String user = "root";
String pass = "2222";
Connection conexion=null;
PreparedStatement ps=null;
try {
conexion = DriverManager.getConnection(url,user,pass);
ps = conexion.prepareStatement("SELECT CODIGOCLIENTE, EMPRESA, POBLACION FROM tclientes WHERE POBLACION='?';");
ps.setString(1, "MADRID");
ResultSet rs = ps.executeQuery();
while(rs.next()) {
System.out.println(rs.getString("CODIGOCLIENTE")+" "+rs.getString("EMPRESA")+" "+rs.getString("POBLACION"));
}
conexion.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
例外:
java.sql.SQLException:无法在位置1设置参数(值 是 'MADRID')查询 - conn:8(M) - “SELECT CODIGOCLIENTE,EMPRESA,POBLACION FROM tclientes WHERE POBLACION ='?';“ 在 org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getSqlException(ExceptionMapper.java:192) 在org.mariadb.jdbc.MariaDbPreparedStatementClient.setParameter(MariaDbPreparedStatementClient.java:435) at org.mariadb.jdbc.BasePrepareStatement.setString(BasePrepareStatement.java:1379) 在Conexion.mainPruebas.main(mainPruebas.java:22)
答案 0 :(得分:2)
删除PreparedStatement
ps = conexion.prepareStatement("SELECT CODIGOCLIENTE, EMPRESA, POBLACION FROM tclientes WHERE POBLACION=?;");
答案 1 :(得分:0)
REPLACE
ps = conexion.prepareStatement("SELECT CODIGOCLIENTE, EMPRESA, POBLACION FROM tclientes WHERE POBLACION='?';")
与
ps = conexion.prepareStatement("SELECT CODIGOCLIENTE, EMPRESA, POBLACION FROM tclientes WHERE POBLACION=?;")
注意:我已删除了''
?