发表于: 2018-04-01 17:38:38
1 503
今天完成的事情:
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连接数据库的原理和步骤。
评论