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();不行吗 展开
{
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();不行吗 展开
2个回答
展开全部
有为什么这里要先这样写PreparedStatementTest pt=null;
写成PreparedStatementTest pt=new PreparedStatementTest();不行吗
回答 :是可以的。不过你的try语句,就要包含这个语句了。
也就是
try
{
PreparedStatementTest pt=new PreparedStatementTest();
.................................
ini文件,有它固定的格式,所以在读写时java也写的有,你只需要拿来用,就行了,自己写的这个,程序无法识别,所以必然报错了
写成PreparedStatementTest pt=new PreparedStatementTest();不行吗
回答 :是可以的。不过你的try语句,就要包含这个语句了。
也就是
try
{
PreparedStatementTest pt=new PreparedStatementTest();
.................................
ini文件,有它固定的格式,所以在读写时java也写的有,你只需要拿来用,就行了,自己写的这个,程序无法识别,所以必然报错了
展开全部
空值例外可能还是连接不成功
conn=DriverManager.getConnection(url,user,pass);
这句话前将url,user,pass均打印出来看看是否读取正确
之后打印以下conn的值或状态,看看其是否连接成功.
另外所有的例外均被你throws但没有任何处理,对代码来讲没问题,但出现问题你不知道是哪出的.
写成PreparedStatementTest pt= new PreparedStatementTest() 是可以的
若可能会出现例外,pt= new PreparedStatementTest()需放入try和catch块中,防止出错
conn=DriverManager.getConnection(url,user,pass);
这句话前将url,user,pass均打印出来看看是否读取正确
之后打印以下conn的值或状态,看看其是否连接成功.
另外所有的例外均被你throws但没有任何处理,对代码来讲没问题,但出现问题你不知道是哪出的.
写成PreparedStatementTest pt= new PreparedStatementTest() 是可以的
若可能会出现例外,pt= new PreparedStatementTest()需放入try和catch块中,防止出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询