日期:2014-05-20  浏览次数:20754 次

java对象引用,值传递,一个困惑了很久的问题,请高手指导!
写了两个类
第一个
public class testMain
{
public static void main(String args[])
{
dataLianJie dlj = new dataLianJie();
System.out.println("结果"+dlj.lianjie()+dlj.conn);
}
}
第二个
import java.sql.*;
public class dataLianJie 
{
Connection conn;

String DatabaseName = "model";  
String User = "sa";
String password = "";
String url ="jdbc:microsoft:sqlserver://localhost:1433;+DatabaseName="+DatabaseName+";User="+User+";password="+password;
public Connection lianjie()
{
try 
{  
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  
System.out.println("数据库驱动程序注册成功");  
Connection conn = DriverManager.getConnection(url);
System.out.println("成功连接数据库"+conn);  

}  
catch (Exception e) 
{  
System.out.println("数据库连接失败");  
e.printStackTrace();  
}
return conn;
}

}
运行结果为:数据库驱动程序注册成功
  成功连接数据库com.microsoft.jdbc.sqlserver.SQLServerConnection@665753
  结果nullnull

奇怪啊,为什么这个位置为空啊想不通啊。我用dataLianJie的对象调用方法,这里到底为什么不行啊。请高手指导



------解决方案--------------------
这个也是属于初级错误啊,你看看你怎么写的?

Connection conn = DriverManager.getConnection(url);

这不就已经重新定义了一个局部变量了?那你那个类属性必然是没有得到值啊!请修改为:

conn = DriverManager.getConnection(url); // 去掉前面的Connection