路过的帮忙顶一下!!!!!!MESSAGE: Connection refused: connectpackage count;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class Jdbc {
Connection conn;
Statement stat;
public boolean createTable(String sql){
try {
boolean b=connect().execute(sql);
return b;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public boolean insertData(String sql){
try {
boolean b=connect().execute(sql);
return b;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public Statement connect(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/compare","root","111111");
//conn.setAutoCommit(false);
stat = conn.createStatement();
return stat;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return null;
}
}package count;
import java.io.*;
import java.util.ArrayList;
public class OP_File
{
public BufferedReader bufread;
public BufferedWriter bufwriter;
File writefile;
String filepath,filecontent,read;
String readStr="";
int count=0;
// ArrayList<String[]> al = new ArrayList<String[]>();
public String readfile(String path) //从文本文件中读取内容
{
try
{
filepath=path; //得到文本文件的路径
File file=new File(filepath);
FileReader fileread=new FileReader(file);
bufread=new BufferedReader(fileread);
Jdbc jdbc = new Jdbc();
if((read=bufread.readLine())!=null){
String[] li = read.split(",");
String sql ="create table t2(";
sql=sql+"col0 varchar(100)";
for(int i=1;i<li.length;i++){
sql=sql+", col"+i+" varchar(100)";
}
sql=sql+")";
jdbc.createTable(sql);
}
while((read=bufread.readLine())!=null)
{
count++;
String sql="insert into t2 values('";
String[] li = read.split(",");
sql=sql+li[0]+"'";
// al.add(li);
for(int i=1;i<li.length;i++){
sql=sql+",'"+li[i]+"'";
System.out.print(" "+li[i]);
}
sql=sql+");";
jdbc.insertData(sql);
//jdbc.commit();
System.out.println();
//System.out.println(read);
//readStr=readStr+read;
}
System.out.println(count);
}catch(Exception d){System.out.println(d.getMessage());}
return readStr; //返回从文本文件中读取内容
}
public static void main(String args[]){
String filedir = "C:\\compare\\20080808-20081021.txt";
OP_File opf = new OP_File();
String res = opf.readfile(filedir);
//System.out.println(res);
}
}我用以上代码向MYSQL里插入数据,要好几万条,但当插入了4000行左右就报出了以下错误:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException
MESSAGE: Connection refused: connectSTACKTRACE:java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at count.Jdbc.connect(Jdbc.java:53)
at count.Jdbc.insertData(Jdbc.java:27)
at count.OP_File.readfile(OP_File.java:46)
at count.OP_File.main(OP_File.java:80)
** END NESTED EXCEPTION **Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at count.Jdbc.connect(Jdbc.java:53)
at count.Jdbc.insertData(Jdbc.java:27)
at count.OP_File.readfile(OP_File.java:46)
null
at count.OP_File.main(OP_File.java:80)
我从网上找了相关问题,有人说是因为连接时间太久,把wait_timeout改长点,可我改了还是没用。
谁知道的帮忙解答一下。
不知道的也帮忙顶一下啊,谢谢了。
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class Jdbc {
Connection conn;
Statement stat;
public boolean createTable(String sql){
try {
boolean b=connect().execute(sql);
return b;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public boolean insertData(String sql){
try {
boolean b=connect().execute(sql);
return b;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public Statement connect(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/compare","root","111111");
//conn.setAutoCommit(false);
stat = conn.createStatement();
return stat;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return null;
}
}package count;
import java.io.*;
import java.util.ArrayList;
public class OP_File
{
public BufferedReader bufread;
public BufferedWriter bufwriter;
File writefile;
String filepath,filecontent,read;
String readStr="";
int count=0;
// ArrayList<String[]> al = new ArrayList<String[]>();
public String readfile(String path) //从文本文件中读取内容
{
try
{
filepath=path; //得到文本文件的路径
File file=new File(filepath);
FileReader fileread=new FileReader(file);
bufread=new BufferedReader(fileread);
Jdbc jdbc = new Jdbc();
if((read=bufread.readLine())!=null){
String[] li = read.split(",");
String sql ="create table t2(";
sql=sql+"col0 varchar(100)";
for(int i=1;i<li.length;i++){
sql=sql+", col"+i+" varchar(100)";
}
sql=sql+")";
jdbc.createTable(sql);
}
while((read=bufread.readLine())!=null)
{
count++;
String sql="insert into t2 values('";
String[] li = read.split(",");
sql=sql+li[0]+"'";
// al.add(li);
for(int i=1;i<li.length;i++){
sql=sql+",'"+li[i]+"'";
System.out.print(" "+li[i]);
}
sql=sql+");";
jdbc.insertData(sql);
//jdbc.commit();
System.out.println();
//System.out.println(read);
//readStr=readStr+read;
}
System.out.println(count);
}catch(Exception d){System.out.println(d.getMessage());}
return readStr; //返回从文本文件中读取内容
}
public static void main(String args[]){
String filedir = "C:\\compare\\20080808-20081021.txt";
OP_File opf = new OP_File();
String res = opf.readfile(filedir);
//System.out.println(res);
}
}我用以上代码向MYSQL里插入数据,要好几万条,但当插入了4000行左右就报出了以下错误:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException
MESSAGE: Connection refused: connectSTACKTRACE:java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at count.Jdbc.connect(Jdbc.java:53)
at count.Jdbc.insertData(Jdbc.java:27)
at count.OP_File.readfile(OP_File.java:46)
at count.OP_File.main(OP_File.java:80)
** END NESTED EXCEPTION **Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at count.Jdbc.connect(Jdbc.java:53)
at count.Jdbc.insertData(Jdbc.java:27)
at count.OP_File.readfile(OP_File.java:46)
null
at count.OP_File.main(OP_File.java:80)
我从网上找了相关问题,有人说是因为连接时间太久,把wait_timeout改长点,可我改了还是没用。
谁知道的帮忙解答一下。
不知道的也帮忙顶一下啊,谢谢了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货