扶摇777
2017-08-11 13:38
采纳率: 100%
浏览 5.3k

关于JDBC的使用 连接数据库出了问题 Communications link failure

我用的是SQLserver
驱动加载没问图
但是连接数据库的时候出了问题
报错如下:
Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
代码如下:
public class DBCon {

public static final String DRIVER="com.mysql.jdbc.Driver";

public static final String URL="jdbc:mysql://localhost:1433/工资管理系统";

public static final String USER="sa";

public static final String PWD="root";

private Connection con;

private PreparedStatement ps;

private ResultSet rs;

public DBCon(){  
    try {  
        //加载驱动程序  
        Class.forName(DRIVER);
        System.out.println("数据库驱动加载成功");
    } catch (ClassNotFoundException e) {  
        e.printStackTrace();  
    }  
}  
/** 
 * @return返回数据库连接 
 */  
public Connection getCon(){  
    try {  
        con=DriverManager.getConnection(URL, USER, PWD); 
        if(con!=null){
            System.out.println("数据库连接成功");
        }
    } catch (SQLException e) { 
        System.out.println("数据库连接失败");
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }  
    return con;  
}  

/** 
 * 关闭资源  
 */  
public void closeAll(){  
    if(rs!=null){  
        try {  
            rs.close();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
    }  
    if(ps!=null)  
        try {  
            ps.close();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
    if(con!=null)  
        try {  
            con.close();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
}  
public int update(String sql,Object... pras){  
    int resu=0;  
    con=getCon();  
    try {  
        ps=con.prepareStatement(sql);  
        if(pras!=null){  
            for(int i=0;i<pras.length;i++){  
                ps.setObject(i+1, pras[i]);  
            }  
        }  
        resu=ps.executeUpdate();  
    } catch (SQLException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }finally{  
        closeAll();  
    }  
    return resu;  
}  


/** 
 * @param sql sql语句  
 * @param pras 
 * @return 结果集 
 */  
public ResultSet query(String sql,Object... pras){  
    con=getCon();  
    try {  
        ps=con.prepareStatement(sql);  
        if(pras!=null){  
            for(int i=0;i<pras.length;i++){  
                ps.setObject(i+1, pras[i]);  
            }  
        }  
        rs=ps.executeQuery();  
    } catch (SQLException e) {  
        // TODO Auto-generated catch block  
        e.printStackTrace();  
    }  
    return rs;  
} 
public static void main(String[] args) {
    // TODO Auto-generated method stub
    DBCon con = new  DBCon();
    con.getCon();

}

}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 80152 2017-08-11 15:53
    已采纳

    驱动用错了,你用的是mysql的驱动

    打赏 评论
  • 追着梦跑 2017-08-12 02:58

    sqlserver:

    驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
    URL:jdbc:microsoft:sqlserver://<:port>;DatabaseName=

    打赏 评论
  • 砸死接触 2017-08-12 03:26

    不是说你sqlserver吗? DBCon 类里写的全是mysql啊? 楼主到底用的什么数据库?

    打赏 评论
  • 扶摇777 2017-08-12 04:02

    额,原来是这样。没注意看,谢谢各位啦~~~~~~~~~~~

    打赏 评论

相关推荐 更多相似问题