错误,同时尝试运行的executeQuery /预处理语句()
SQL语句不是executedcom.mysql.jdbc.CommunicationsException:通信链路>故障是由于底层异常:错误,同时尝试运行的executeQuery /预处理语句()
** BEGIN嵌套异常**
java.net.ConnectException消息: 连接被拒绝
堆栈跟踪:
java.net.ConnectException:连接 不肯在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) java.net.PlainSocketImpl.socketConnect(本地 法)以 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384) 在 java.net.Socket.connect(Socket.java:546) at java.net.Socket.connect(Socket.java:495) at java.net.Socket。(Socket.java:392) 在 java.net.Socket中。(Socket.java:235) 在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 在 com.mysql.jdbc.MysqlIO。(MysqlIO.java :271) 在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 在 com.mysql.jdbc.Connection(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver。 .connect(NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) 在 org.jtdemo.preparedst.main(preparedst.java:18)
** END嵌套异常**
发送到服务器的最后的分组为1 毫秒前。在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2847) 在 com.mysql.jdbc.Connection。(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver的.java:285) 在 java.sql.DriverManager.getConnection(DriverManager.java:620) 在 java.sql.DriverManager.getConnection(DriverManager.java:200) 在 org.jtdemo.preparedst.main( preparedst.java:18)
我的计划是
package org.jtdemo;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class preparedst
{
//private static final String y = null;
public static void main(String arg[])throws Exception
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3036/mylib_db";
Connection con=DriverManager.getConnection(url,"nikki","dkm007");
String query = " select c.sub_category, b.title,b.author,b.b_key,ta.available_copies" +
"from Book_dim b,Category_list c,item_availablity_fact ta" +
" where sub_category = 'Mathematics' and " +
" c.category_id=b.category_id and " +
" b.b_key=ta.b_key " ;
/*ps = con.prepareStatement(" select c.sub_category, b.title,b.author,b.b_key,ta.available_copies" +
"from Book_dim b,Category_list c,item_availablity_fact ta" +
" where sub_category = ? and " +
" c.category_id=b.category_id and " +
" b.b_key=ta.b_key ");*///pass sql query ,no parameter passing
//ps.String(1, "Mathematics"); // set input parameter
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query) ;
while(rs.next())
{
String scat = rs.getString(1);
String ttl = rs.getString(2);
String auth = rs.getString(3);
int bkey = rs.getInt(4);
int avcop = rs.getInt(5);
//String b_key;
System.out.println("subcategory:"+scat+"title:"+ttl+"author:"+auth+"bookkey:"+bkey+"availcopies:"+avcop);
}
con.close();
//ps.close();
}
catch(Exception e)
{
System.out.println("SQL statement is not executed");
e.printStackTrace();
}
}
}
我使用JDK 1.6,使用mysql-connector-java的5.0.8-bin.jar,Eclipse版本:3.5.2。
请帮忙.................
它看起来像一个网络问题。看起来数据库没有监听你要连接的java端口。
我会检查端口确实正在侦听(通过netstat),检查任何防病毒,防火墙,安全程序等。如果这一切都恢复正常,那么可能重新启动数据库程序(myssql)会执行诀窍。
异常告诉你这个问题。如果您的连接被拒绝,那么客户端或服务器的配置有问题。所以首先要检查的是JDBC URL。您需要验证以下内容:
- 的服务器为本地主机
- 服务器的服务端口3036(MySQL的默认端口是3306,所以这可能是你的问题)
- 你有一个该服务器名为“mylib_db”
- 您的用户名的数据库是正确
- 您的密码是正确的(将来你可能希望使用占位符文本,如“密码”)
如果所有信息都是正确的,则需要检查服务器以确保'nikki'有权通过网络连接到数据库。