发表于: 2018-04-01 17:38:38

1 505



今天完成的事情:


1、将申请人和申请资料两个表合一,通过JDBC合并数据+事务批量向数据库插入10条数据,并将该项目导出为一个可执行jar包,主要代码如下

public static void insert_ap(){
//插入时间,create_time
   Long begin = new Date().getTime();
   //sql前缀
   String prefix = "INSERT INTO application(ap_num,applicant,career,school,start_time,link,info,brother,ap_qq) VALUES";
   //测试 String s = ""+"insert into re_result(create_at,ap_num,career) values("+"2,?,123)";
   Connection conn = Tools.getConnection();
   try{
//保持sql后缀
       StringBuffer suffix = new StringBuffer();
       conn.setAutoCommit(false);
       PreparedStatement pst = conn.prepareStatement("");
       //外层循环,总提交事务次数
       for (int i=1;i<=1;i++){
//第?次提交步长
           for (int j=1;j<=10;j++){
suffix.append("('"+j*i+"','测试','java','A学院"+"','20180401',"+"'http://www.baidu.com','"+i*j*Math.random()+"','推荐人','123456789'),");
           }
//构建完整sql语句
           String sql = prefix+suffix.substring(0,suffix.length()-1);
           //添加执行sql
           System.out.println(sql);
           pst.addBatch(sql);
           //执行操作
           pst.executeBatch();
           //提交事务
           conn.commit();
           //清空上一次添加的数据
               suffix = new StringBuffer();
       }

       pst.close();
       conn.close();
   }
catch (SQLException e){
e.printStackTrace();
   }
finally {
//结束时间
       Long end = new Date().getTime();
       //耗时
       System.out.println("cast:"+(end-begin)/1000+"s");
   }
}

运行结果:

                   

2、比较有无索引对数据查询的影响:使用索引,查询时间只花了0.021s,删除索引后再次查询,花费0.104s,时间消耗接近五倍。

                   

3、JDK和JRE的区别

      jre(java runtime environment): java程序运行环境,提供运行环境,安装jre电脑才可以运行java程序,jre包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库

      jdk(java development kit):  java开发工具包,开发当然需要运行,所以jdk中包含jre和jvm。

     安装jdk后可以使用javac命令将程序源代码生成相对应的字节码文件(.class),安装jre后可以运行这种后缀名为.class的字节码文件,这种字节码文件运行在JVM这个在操作系统之外的软件平台上,因为和操作系统无关,所以java程序具有可移植性.     

4、跟着百度经验创建了一个Maven项目 

明天计划的事情:

      认真看一下Maven的Document,重新独立建一个Maven项目

遇到的问题:

      JDBC连接数据库时,报java.lang.NullPointerException,查询后发现是自己的PreparedStatement未调用connection的prepareStatement方法。最初jdbc连接语句也写在同一个类中,而connection又在try语句块中定义(后来移出去了),导致一直报错,后来把jdbc的连接语句和连接信息(url,username,password)单独放到一个类中

收获:

     更了解java编译的机制,和jdbc连接数据库的原理和步骤。


返回列表 返回列表
评论

    分享到