「已注销」 2017-08-11 13:38 采纳率: 100%
浏览 5616
已采纳

关于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的驱动

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题