有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java结果集为空,不管mysql查询是否正确

我的java代码有问题(Resultset为null)。在我尝试远程Mysql scalegrid托管之前,它一直在本地主机上工作。最有趣的是,如果我使用Mysql Workbench,查询可以正常工作并返回所有行。我做错了什么

我已尝试手动提交我的表

Query (SELECT * FROM ShopDatabase.DATA)工作正常

import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.sql.*;

public class Main {
    public static void main(String[] args) throws ParserConfigurationException, IOException, SQLException, ClassNotFoundException {
        String userName = "App";
        String password = "AppShopData+2";
        String connectionUrl = "jdbc:mysql://SG-ShopDatabase-821-master.servers.mongodirector.com:3306/ShopDatabase";
        try(Connection connection = DriverManager.getConnection(connectionUrl, userName, password)){
            System.out.println("Connection established");
            Statement statement = connection.createStatement();


            ResultSet resultSet = statement.executeQuery("SELECT * FROM ShopDatabase.DATA where product_name = 'Хлеб';");

            while(resultSet.next()){
                System.out.println(resultSet.getInt("id"));
                System.out.println("----------------");
            }



            }



    }
}

共 (2) 个答案

  1. # 1 楼答案

    删除查询末尾的;

    ResultSet resultSet = statement.executeQuery(
        "SELECT * FROM ShopDatabase.DATA where product_name = 'Хлеб'");
    
  2. # 2 楼答案

    给定正确的MySQL连接,并且确实存在列值“Xбб”:

    • 删除“;”在查询和检查结束时
    • 如果上述方法不起作用,消除可能的国际化问题(不管它们是什么):储存“面包”而不是Xбб,看看你是否有结果(Xбб是俄语中的面包)。当然,您需要相应地调整查询