java下面的程序空指针报错

publicclassPreparedStatementTest{privateStringdriver;privateStringurl;privateStringus... public class PreparedStatementTest
{
private String driver;
private String url;
private String user;
private String pass;

Connection conn;
Statement stat;
PreparedStatement preStat;

public void initParam(String param) throws Exception
{
Properties props=new Properties();
props.load(new FileInputStream(param));
driver=props.getProperty(driver);
url=props.getProperty(url);
user=props.getProperty(user);
pass=props.getProperty(pass);
}

public void getConn() throws Exception
{
if(conn==null)
{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
}
}

public void closeConn() throws Exception
{
if(conn!=null)
{
conn.close();
}
}

public void executeStat() throws Exception
{
long start=System.currentTimeMillis();
try
{
stat=conn.createStatement();

for(int i=0;i<100;i++)
{
stat.execute("insert into student_table values(null,'姓名"+i+"',1)");

}
System.out.println("插入耗时:"+(System.currentTimeMillis()-start));
}
finally
{
if(stat!=null)
{stat.close();}
}

}

public void preStat()throws Exception
{
long start=System.currentTimeMillis();
try
{
preStat=conn.prepareStatement("insert into student_table values(null,?,1)");
for(int i=0;i<100;i++)
{
preStat.setString(1,"姓名"+i);
preStat.executeUpdate();
}
System.out.println("耗时:"+(System.currentTimeMillis()-start));
}
finally
{
if(preStat!=null)
{
preStat.close();
}
}

}

public static void main(String[] args) throws Exception
{
PreparedStatementTest pt=null;
try
{
pt=new PreparedStatementTest();
pt.initParam("mysql1.ini");
pt.getConn();
pt.executeStat();
pt.preStat();

}
finally
{
pt.closeConn();
}
}

}
在main函数中报错.ini文件没有问题。
还有为什么这里要先这样写PreparedStatementTest pt=null;

写成PreparedStatementTest pt=new PreparedStatementTest();不行吗
展开
 我来答
herox_hu
2013-10-17 · TA获得超过776个赞
知道小有建树答主
回答量:1122
采纳率:0%
帮助的人:324万
展开全部
有为什么这里要先这样写PreparedStatementTest pt=null;

写成PreparedStatementTest pt=new PreparedStatementTest();不行吗

回答 :是可以的。不过你的try语句,就要包含这个语句了。
也就是

try
{
PreparedStatementTest pt=new PreparedStatementTest();

.................................

ini文件,有它固定的格式,所以在读写时java也写的有,你只需要拿来用,就行了,自己写的这个,程序无法识别,所以必然报错了
artintin
2013-10-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7508
采纳率:80%
帮助的人:2888万
展开全部
空值例外可能还是连接不成功
conn=DriverManager.getConnection(url,user,pass);

这句话前将url,user,pass均打印出来看看是否读取正确
之后打印以下conn的值或状态,看看其是否连接成功.

另外所有的例外均被你throws但没有任何处理,对代码来讲没问题,但出现问题你不知道是哪出的.

写成PreparedStatementTest pt= new PreparedStatementTest() 是可以的
若可能会出现例外,pt= new PreparedStatementTest()需放入try和catch块中,防止出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式