qq_33456468 2016-08-05 10:03 采纳率: 0%
浏览 1086

求大神帮忙,谢谢,java连接数据库向表中添加数据两种方式效率的比较

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Properties;

public class PreparedStatementTest {
private String driver;
private String url;
private String user;
private String pass;
public void initParam(String paramFile)throws Exception{
Properties props = new Properties();
props.load(new FileInputStream(paramFile));
driver = props.getProperty(driver);
url = props.getProperty(url);
user = props.getProperty(user);
pass = props.getProperty(pass);
Class.forName(driver);

}
public void insertUseStatement()throws Exception{
    long start = System.currentTimeMillis();
    try(
            Connection conn= DriverManager.getConnection(url,user,pass);
            Statement stmt = conn.createStatement()

            ){
        for(int i = 0;i < 100; i++){
            stmt.executeUpdate("insert into student_id values('姓名"+i+"','姓名"+i+"')");

        }
        System.out.println("使用Statement费时:"+(System.currentTimeMillis()-start));
    }
}
public void insertUsePrepare() throws Exception{
    long start = System.currentTimeMillis();
    try(
            Connection conn = DriverManager.getConnection(url,user,pass);
            PreparedStatement pstmt = conn.prepareStatement("insert into student_id values(?,?)")
            ){
               for(int i = 0;i < 100;i++){
                   pstmt.setString(i,"姓名"+i);
                   pstmt.executeUpdate();
               }
               System.out.println("使用PreparedStatement费时:"+(System.currentTimeMillis()-start));
    }
}
public static void main(String[] args)throws Exception{
    PreparedStatementTest pt = new PreparedStatementTest();
    pt.initParam("mysql.ini");
    pt.insertUseStatement();
    pt.insertUsePrepare();
}

}

Exception in thread "main" java.lang.NullPointerException
at java.util.Hashtable.hash(Hashtable.java:239)
at java.util.Hashtable.get(Hashtable.java:434)
at java.util.Properties.getProperty(Properties.java:951)
at PreparedStatementTest.initParam(PreparedStatementTest.java:17)
at PreparedStatementTest.main(PreparedStatementTest.java:54)
student_id表示存在的,怎么就报空指针呢?

  • 写回答

2条回答 默认 最新

  • Birds_Cerebrum 2016-08-05 10:18
    关注

    PreparedStatementTest.java:17行 和 PreparedStatementTest.java:54行有错,这两行代码贴出来看看。

    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services