【问题标题】:How to connect MYSQL and java [duplicate]如何连接MYSQL和java [重复]
【发布时间】:2013-06-07 16:00:21
【问题描述】:

我已经安装了 MYSQLSERVER 5.1。然后我安装了 mysql-connector-java-3.0.8-stable-bin.jar 并放入驱动器 c,其文件夹 core 为 C:\core。然后在计算机的属性中,我使用变量名 CLASSPATH 和变量值创建用户变量:C:\core\mysql-connector-java-3.0.8-stable-bin.jar。

现在我创建了数据库 EMPLOYEE4 我的 JAVA 代码是:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
class MySQLTest{


    public static void main(String[] args) {  
        try {  
            Class.forName("com.mysql.jdbc.Driver");  
            Connection dbCon = DriverManager.getConnection(  
                    "jdbc:mysql://localhost:3306/EMPLOYEE4", "root", "root");  

        String query ="select count(*) from EMPLOYEE4 ";

        Statement stmt = null;
        ResultSet rs = null;

            //getting PreparedStatment to execute query
            stmt = dbCon.prepareStatement(query);

            //Resultset returned by query
            rs = stmt.executeQuery(query);

            while(rs.next()){
             int count = rs.getInt(1);
             System.out.println("count of stock : " + count);
            }

        } catch (Exception ex) {
             ex.printStackTrace();
            //Logger.getLogger(CollectionTest.class.getName()).log(Level.SEVERE, null, ex);
        } finally{
           //close connection ,stmt and resultset here
        }

    }  
   }

我得到错误

SQL Connection exceptionjava.sql.SQLException: Communication link failure: java.
io.IOException, underlying cause: Unexpected end of input stream

** BEGIN NESTED EXCEPTION **

java.io.IOException
MESSAGE: Unexpected end of input stream

STACKTRACE:

java.io.IOException: Unexpected end of input stream
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:339 )
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:78 2)
at com.mysql.jdbc.Connection.createNewIO(Connection.j ava:1585)
at com.mysql.jdbc.Connection.<init>(Connection.java:5 24)
at com.mysql.jdbc.Driver.connect(Driver.java:359)
at java.sql.DriverManager.getConnection(DriverManager .java:512)
at java.sql.DriverManager.getConnection(DriverManager .java:193)
at DbHelper.getConnection(DbHelper.java:34)
at DbHelper.main(DbHelper.java:466)


** END NESTED EXCEPTION **

【问题讨论】:

  • shubham 一定要检查以前发布的问题中的答案...不要重复发布
  • 你检查数据库是否正在运行,我的意思是 mysql 服务已打开,有时它会出现此问题,请尝试使用命令提示符在数据库中运行此查询
  • 是的,我的查询正在运行。
  • 我只是 asked 你到 edit 你以前的问题包括你得到的堆栈跟踪,发布一个单独的问题。

标签: java mysql


【解决方案1】:

这个:

java.io.IOException: Unexpected end of input stream
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:339 )
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:78 2)

表示您正在通过类路径获取 JDBC 驱动程序 ok(请参阅完全限定的包名称)。您无法连接到您的数据库,我怀疑您的 MySQL 数据库没有运行,或者没有配置为接受该端口上的连接。

你能连接到那个端口吗? (通过简单的 telnet)或使用 netstat 确认该端口上正在侦听某些东西?

【讨论】:

  • 嘿,我得到了答案。我使用的是 mysqlconnectorjava 的 5.1.2 版本。我将其更改为 5.0.8,它运行良好。谢谢所有回复。
猜你喜欢
  • 2012-10-20
  • 2018-11-09
  • 2011-02-25
  • 2014-09-18
  • 2012-12-15
  • 2018-09-10
  • 1970-01-01
  • 2020-04-14
  • 2020-09-22
相关资源
最近更新 更多