【问题标题】:Can't Show database on XAMPP-> mysql to java无法在 XAMPP-> mysql 上显示数据库到 java
【发布时间】:2017-04-09 09:50:13
【问题描述】:

我正在使用 XAMPP->Mysql 创建数据库并使用 Netbeans IDE 8.1 来创建 java



我的代码

//default package
//1st step
import java.sql.*;

public class DemoJDBC {

    public static void main(String[] args) {
        try{
          String Query = "Select * from Student";
          //2nd step  
            Class.forName("com.mysql.jdbc.Driver");
          //3rd step
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "0");
          //4th step
            Statement st = con.createStatement();
          //5th step
            ResultSet rs = st.executeQuery(Query);
            rs.next();
            String name = rs.getString("sname");
            System.out.println(name);

          //6th step
          con.close();
        }
        catch (Exception e){

        }
    }

}

为什么没有显示输出名称?它只是显示 netbeans 输出中的“构建成功(总时间:1 秒)”

【问题讨论】:

  • “BUILD SUCCESSFUL”表示您构建了代码,但也许您没有运行它?

标签: java mysql jdbc xampp


【解决方案1】:

除了更正您的代码以循环通过ResultSet,您还需要更正您的连接字符串,如下所示:

考虑到您的 MySQL 正在默认 MySQL 端口 3306 上运行(我看到您已经在),需要更新连接字符串。

还看到root用户的密码是'0',真的是密码吗?

public static void main(String[] args) {
    try {
        String query = "SELECT * FROM Student";
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "0");
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery(query);

        //Loop to retrieve tuple(s) from the ResultSet rs
        while (rs.next()) {
            String name = rs.getString("sname");
            System.out.println(name);
        }
        con.close();
    } catch (Exception e) {
    }
}

还要确保您的MySQL Connector/J jar 文件存在于您的 CLASSPATH 中,以免遇到任何参考问题。

希望这会有所帮助!

【讨论】:

  • 当我更改为 "jdbc:mysql://localhost:3360/student", "root", ""); ,它的工作......! MySQL中不是默认设置的端口吗?
  • 这是设计使然,您需要在连接字符串中提及端口号
【解决方案2】:

您需要遍历ResultSet 来获取元组或行。因此,在循环时,您可以检索您想要获取的任何数据或字段。试试:

    public static void main(String[] args) {
        try {
            String Query = "Select * from Student";
            //2nd step  
            Class.forName("com.mysql.jdbc.Driver");
            //3rd step
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "0");
            //4th step
            Statement st = con.createStatement();
            //5th step
            ResultSet rs = st.executeQuery(Query);

            //Loop to retrieve tuple(s) from the ResultSet rs
            while (rs.next()) {
                String name = rs.getString("sname");
                System.out.println(name);
            }

            //6th step
            con.close();
        } catch (Exception e) {

        }
    }

注意如果默认情况下您没有更改root 用户的密码,则它只是空字符串(因此"" 而不是"0")。除此之外,您知道自己在做什么。

【讨论】:

  • 它仍然显示运行:BUILD SUCCESSFUL(总时间:1 秒)
  • 记下我回答的 NOTE 部分,如果有帮助的话。
  • 您是在运行还是只是在构建项目?如果你只是在构建,你可以使用SHIFT+F6来运行这个文件。
  • 我应该把 jdbc:mysql://localhost/student 改成 jdbc:mysql://localhost:8080/student 吗?
  • Mysql 根据您的 xampp 在端口 3306 上运行,所以如果有的话,您宁愿将其更改为 3306。我希望您也将 mysql java 驱动程序 jar 文件添加到库中。
猜你喜欢
  • 2013-03-21
  • 2015-03-06
  • 2015-07-22
  • 2020-02-28
  • 2015-06-29
  • 2017-05-08
  • 1970-01-01
  • 2015-06-25
  • 2021-07-24
相关资源
最近更新 更多