我是新手,在家装的mysql,这么都连不上
//报错
Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connectSTACKTRACE:java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:151)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1765)
at com.mysql.jdbc.Connection.<init>(Connection.java:430)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.tarena.jdbclab.SQLTools.getConnection(SQLTools.java:96)
at com.tarena.jdbclab.SQLTools.main(SQLTools.java:11)
** END NESTED EXCEPTION **
//代码---------------------------
{
public static void main(String[] args){
//1.连数据库
JdbcUtil jdbcUtil = new JdbcUtil();//倒用一个工具包
Connection con = null;
while((con=getConnection())==null){
System.out.println("请重试");
}
//2.处理用户命令
processCommand(con);
//3.结束程序
JdbcUtil.close(null,null,con);
System.out.println("再见,欢迎下次使用!");
}
private static void processCommand(Connection con){
String command = null;
boolean flag = true;
while(flag){
command = getCommand();//1.获取用户命令
//2.执行用户命令
if("quit".equals(command)){
flag = false;
}else if("commit".equals(command)||"rollback".equals(command)){
processTransaction(con,command);
}else{
processSQL(con,command);
}
}
}
private static String getCommand(){
String message = "MYSQL>";
String command = "";
boolean flag = true;
StringBuffer sb = new StringBuffer();
int i = 0;
while(flag){
if(++i>1) message = i+">";
sb.append(" "+prompt(message));
command = sb.toString().trim();
if(command.endsWith(";")){
flag=false;
}
}
return command.substring(0,command.length()-1).trim();
}
private static void processSQL(Connection con,String sql){
Statement stmt = null;
ResultSet rs = null;
String message = "";
try{
stmt = con.createStatement();
if(stmt.execute(sql)){
rs = stmt.getResultSet();
JdbcUtil.printRs(rs);
}else{
int i = stmt.getUpdateCount();
message = "更新成功-"+i;
}
System.out.println(message);
}catch(Exception e){
System.out.print(e.getMessage());
try{
con.rollback();
}catch(Exception ex){
ex.printStackTrace();
}
}finally{
JdbcUtil.close(rs,stmt,null);
}
}
private static String prompt(String message){
BufferedReader in =
new BufferedReader(
new InputStreamReader(
System.in));
String input = "";
System.out.print(message);
try{
input = in.readLine();
}catch(Exception e){
System.out.println(e.getMessage());
}
return input;
}
private static Connection getConnection(){
Connection con = null;
String url = prompt("请输入url:");
String userName = prompt("请输入用户名:");
String pwd = prompt("请输入密码:");
try{
con = DriverManager.getConnection(url,userName,pwd);
con.setAutoCommit(false);
}catch(Exception e){
System.out.println(e.getMessage());
}
return con;
}
private static void processTransaction(Connection con , String command){
try{
if("commit".equals(command)){
con.commit();
}else{
con.rollback();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
//倒用了一个工具包
public class JdbcUtil
{
static{
String driverClassName =
"com.mysql.jdbc.Driver";
try{
Class.forName(driverClassName);
}catch(Exception e){
e.printStackTrace();
//System.out.println("找不到驱动程序");
}
}
public static Connection getConnection(){
String url =
"jdbc:mysql://localhost:3306/test";
String username = "root";
String pwd = "123";
Connection con = null;
try{
con = DriverManager.getConnection(
url,username,pwd);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void close(ResultSet rs,Statement stmt,Connection con){
try{
if(rs!=null) rs.close();
}catch(Exception ex){
ex.printStackTrace();
}
try{
if(stmt!=null) stmt.close();
}catch(Exception ex){
ex.printStackTrace();
}
try{
if(con!=null) con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public static Integer sToInt(String num){
Integer i = null;
try{
i = Integer.parseInt(num);
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public static void printRs(ResultSet rs){
if(rs==null) return;
try{
StringBuffer sb = new StringBuffer();
ResultSetMetaData meta = rs.getMetaData();
int cols = meta.getColumnCount();
for(int i=1;i<=cols;i++){
sb.append(meta.getColumnName(i)+" ");
}
sb.append("\n");
sb.append("----------------------------------------\n");
while(rs.next()){
for(int i=1;i<=cols;i++){
sb.append(rs.getString(i)+" ");
}
sb.append("\n");
}
System.out.print(sb.toString());
}catch(Exception e){
e.printStackTrace();
}
}
}
你的MySQL启动了吗?
你的MySQL启动了吗?