12月11日
今天继续写数据处理,我继续去解决数据太多难入库的问题,我最后将写入函数改成这样
//这个是改变了插入逻辑 插的快一些 public void add_1(String name ,ArrayList<ArrayList<String>> arrayLists,ArrayList<String>zd) { int j=0; //获得链接对象 Connection connection = Util.getConnection(); //准备sql语句,进行插入操作,插入到class表中 String sql1 = "insert into "+name+" ("; for(int i=0;i<zd.size();i++){ if(i==zd.size()-1){ sql1=sql1+zd.get(i)+" "; }else{ sql1=sql1+zd.get(i)+","; } } sql1=sql1+") values("; // System.out.println(sql1); PreparedStatement preparedStatement = null;//定义在try外用于在finally中释放,因为在try中是局部变量 try { for(ArrayList<String> array : arrayLists) { //String sql1=sql+") values("; String sql=sql1; for (int k = 0; k < array.size(); k++) { if(k==array.size()-1){ sql=sql+"'"+array.get(k).replaceAll("'","")+"') "; //会有一个很怪的问题,元素的值会有单引号,而这个单引号会导致和其他单引号组成一个元素,插入就乱掉了 //我选择将元素中单引号删掉 }else{ sql=sql+"'"+array.get(k).replaceAll("'","")+"',"; } } System.out.println(sql+"开始了"); preparedStatement = connection.prepareStatement(sql); preparedStatement.executeUpdate();//执行sql } // System.out.println("1次"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 Util.close(preparedStatement); Util.close(connection); } }
能插入的比较快,但是需要几秒时间
然后我就像怎么做数据的处理呢,缺失值该怎么展示呢,怎么调用python去查询缺失值呢,结果又怎么传给java呢,在思考建设。
学习时间:13:34到19:21
浙公网安备 33010602011771号