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