• Spring的批处理


    - 批处理主要是分两步:
      1.将要执行的SQL语句保存
      2.执行SQL语句

    - Statement和PreparedStatement都支持批处理操作,这里我们只需要掌握PreparedStatement的批处理方式:
      - 方法:
      void addBatch()
        - 将要执行的SQL先保存起来,先不执行
        - 这个方法在设置完所有的占位符之后调用
      int[] executeBatch()
        - 这个方法用来执行SQL语句,这个方法会将批处理中所有SQL语句执行

     

    - mysql默认批处理是关闭的,所以我们还需要去打开mysql的批处理:
      rewriteBatchedStatements=true
      我们需要将以上的参数添加到mysql的url地址中,即连接数据库的URL中。

    注意: 低版本的mysql-jdbc驱动也不支持批处理,一般都是在修改的时候使用批处理,查询的时候不使用

    一、首先创建一个动态web工程

    二、加入jar包

      mysql-connector-java-5.1.43-bin.jar

    三、实例

    public class Insert {
        
        public static void insert() {
    //Util是我自己写的对连接数据库的封装类
    //getConn()方法是获取Connection对象的方法。
    Connection conn = Util.getConn(); PreparedStatement ps=null; String sql="insert into t_emp(name) values(?)"; //向数据库中插入1000条数据 try { ps = conn.prepareStatement(sql); for (int i = 0; i < 1000; i++) { ps.setString(1, "temp"+i); // 加入到批处理中 ps.addBatch(); }
    //执行开始的时间戳
    long Btime = System.currentTimeMillis(); // 执行批处理 ps.executeBatch();
    //执行结束的时间戳
    long Etime = System.currentTimeMillis(); // 计算总共需要的时间 System.out.println("时间为:"+(Etime-Btime)); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } Util.colse(conn, ps, null); } }

    四、开启批处理操作

      

    //连接数据库声明的变量,在我自定义的Util包中
    static
    String user = "root"; static String password = "root"; static String url = "jdbc:mysql://localhost:3306/neuedu?rewriteBatchedStatements=true";

    五、建一个Junit 测试类

      JUnit Test Case

    public class InsertTest {
    
        @Test
        public void testMain() {
            Insert.insert();
        }
    
    }
  • 相关阅读:
    纯JS实现中国行政区域上下联动选择地址
    java解析中国行政区域并在页面显示实现动态逐级筛选
    使用HttpClient 发送get、post请求,及其解析xml返回数据
    JS实现动态提示文本框可输入剩余字数(类似发表微博数字提示)
    webApi 数据绑定 获取
    EF Code First 常用命令
    [解决WebClient或HttpWebRequest首次连接缓慢问题]
    【转】Entity Framework技术系列之7:LINQ to Entities
    Ajax方法提交整个表单的信息
    【转】MVC中处理Json和JS中处理Json对象
  • 原文地址:https://www.cnblogs.com/xuesheng/p/7454990.html
Copyright © 2020-2023  润新知