欢迎来到天天文库
浏览记录
ID:48262257
大小:62.00 KB
页数:6页
时间:2020-01-20
《jdbc批量插入、批量删除、批量更新》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、JDBC的批量插入JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等。我用Mysql5.1.5的JDBCdriver分别对三种比较常用的方法做了测试方法一,使用PreparedStatement加批量的方法1.try{2.Class.forName("com.mysql.jdbc.Driver");3.conn=DriverManager.getConnection(o_url,userName,password);4.conn.setAutoCommit(false);5.Stringsql="INSERTadlogs(ip
2、,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";6.PreparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);7.for(intx=0;x3、081009");11.prest.setInt(4,8);12.prest.setString(5,"11111111");13.prest.addBatch();14.}15.prest.executeBatch();16.conn.commit();17.conn.close();18.}catch(SQLExceptionex){19.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);20.}catch(ClassNotFoundExceptionex){214、.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);22.}try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(o_url,userName,password);conn.setAutoCommit(false);Stringsql="INSERTadlogs(ip,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";P5、reparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);for(intx=0;x6、ddBatch();}prest.executeBatch();conn.commit();conn.close();}catch(SQLExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}说明下在建Statement的时候,后面两个参数的意7、义:第一个参数指定ResultSet的类型。其选项有:TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至可以进行特定定位,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_SENSITIVE:象TYPE_SCROLL_INSENSITIVE一样,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记8、录将从ResultSet中消失。类似的,对数据值的更改也将反映在ResultSe
3、081009");11.prest.setInt(4,8);12.prest.setString(5,"11111111");13.prest.addBatch();14.}15.prest.executeBatch();16.conn.commit();17.conn.close();18.}catch(SQLExceptionex){19.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);20.}catch(ClassNotFoundExceptionex){21
4、.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);22.}try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(o_url,userName,password);conn.setAutoCommit(false);Stringsql="INSERTadlogs(ip,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";P
5、reparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);for(intx=0;x6、ddBatch();}prest.executeBatch();conn.commit();conn.close();}catch(SQLExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}说明下在建Statement的时候,后面两个参数的意7、义:第一个参数指定ResultSet的类型。其选项有:TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至可以进行特定定位,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_SENSITIVE:象TYPE_SCROLL_INSENSITIVE一样,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记8、录将从ResultSet中消失。类似的,对数据值的更改也将反映在ResultSe
6、ddBatch();}prest.executeBatch();conn.commit();conn.close();}catch(SQLExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}说明下在建Statement的时候,后面两个参数的意
7、义:第一个参数指定ResultSet的类型。其选项有:TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至可以进行特定定位,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。TYPE_SCROLL_SENSITIVE:象TYPE_SCROLL_INSENSITIVE一样,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记
8、录将从ResultSet中消失。类似的,对数据值的更改也将反映在ResultSe
此文档下载收益归作者所有