请帮忙解释下Collenction变量为空的原因

import java.sql.*;
public class ConnDB {
private Connection ct = null;
public static void main(String args[]){

    ConnDB cdb = new ConnDB();
    System.out.println(cdb.getConn());
}
public Connection getConn()
{
    try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=spdb1","sa","123456");
        System.out.println(ct);
    }catch(Exception e)
    {
        e.printStackTrace();

    }
    return ct;      
}

}
代码如上,最后得到的ct值为null,一直找不到原因,请各位帮忙解释下

你在类里面声明了一个 private Connection ct = null;
在try{}里面又一个 Connection ct
如果你把第一行的声明去掉,会报错,return ct 找不到 ct;
如果我这么说你还不能看出问题
那么这么说,try 块里面的 Connection ct 相当于局部变量,你在try块外面 return ct;那肯定找不到你要返回的那个DriverManager获得的 Connection 对象;你这里 return ct 之所以没错,那是因为它返回的是类声明的private Connection ct,而这是一个null
修改:1.删除 private Connection ct = null;
2.在try块外面声明Connection ct = null; try块内 ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=spdb1","sa","123456");

[code="java"]
coder!
[/code]
:arrow: