• 批生产数据库


    package cn.Pdispose;


    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;


    import cn.paging.JdbcUtil;


    //批处理
    public class Dispose {
    private static Connection conn = null;
    private static Statement st = null;
    private static PreparedStatement ps = null;
    public static void testInsert(){
    try {
    conn = JdbcUtil.getConnection();
    st = conn.createStatement();
    String sql1 = "insert into t_name(id,name) values(1,'jing')";
    String sql2 = "insert into t_name(id,name) values(2,'zhang')";
    String sql3 = "delete from t_name where id = 1";
    //addBatch()内部为一个list,加到list中
    st.addBatch(sql1);
    st.addBatch(sql2);
    st.addBatch(sql3);
    //元素师每条语句影响到的行数
    int [] i = st.executeBatch();
    for(int num : i){
    System.out.println(num);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    JdbcUtil.closeJdbc(conn, null, ps);
    }
    }

    //同一时候在一个表里边插入100条数据
    //因为语句全然同样。仅仅是參数不同。使用PreparedStatement
    public static void testInsert_1(){
    long date = System.currentTimeMillis();
    try {
    conn = JdbcUtil.getConnection();
    String sql = "insert into t_name values(?,?)";
    ps = conn.prepareStatement(sql);
    for(int i=1;i<=100;i++){
    ps.setInt(1, i);
    ps.setString(2, "date---"+i);
    //将一组參数加入到此 PreparedStatement 对象的批处理命令中。
    ps.addBatch();
    }
    //将一批命令提交给数据库来运行。假设所有命令运行成功,则返回更新计数组成的数组。
    ps.executeBatch();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    JdbcUtil.closeJdbc(conn, null, ps);
    }
    System.out.println("用时:"+((System.currentTimeMillis()-date)/1000)+"秒");
    }

    //想数据库中插入10000条数据,并设置缓存区
    public static void testInsert_2(){
    //初始化一个时间
    long time = System.currentTimeMillis();
    try {
    conn = JdbcUtil.getConnection();
    String sql = "insert into t_name values(?

    ,?)";
    ps = conn.prepareStatement(sql);
    for(int i=1;i<1000001;i++){
    ps.setInt(1, i);
    ps.setString(2, "date"+i);
    ps.addBatch();
    if(i%1000==0){
    ps.executeBatch();
    ps.clearBatch();//清空数据
    }
    }
    ps.executeBatch();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    JdbcUtil.closeJdbc(conn, null, ps);
    }

    System.out.println("用时:"+((System.currentTimeMillis()-time)/1000)+"秒");
    }


    public static void main(String[] args) {
    testInsert_2();
    }
    }













    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    使用CSS3的appearance属性改变元素的外观
    纯CSS 实现tooltip 内容提示信息效果
    移动端UC /QQ 浏览器的部分私有Meta 属性
    HTML5 的 applicationCache 应用程序缓存离线存储功能与 manifest 文件
    web移动端性能调优及16ms优化
    移动端HTML5资源整理
    js身份证验证-超级准!!!
    编写高效的js/jQuery代码 :rocket:
    html5 摇一摇事件监听
    ios7隐藏系统底部导航
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4865269.html
Copyright © 2020-2023  润新知