JDBC数据批处理

news/2024/5/18 21:43:03 标签: JDBC

--------------------------------------------------JDBC数据批处理-----------------------------------------------------

批处理

 PreparedStatement批处理

批处理就是一批一批的处理,而不是一个一个的处理!

当你有10条SQL语句要执行时,一次向服务器发送一条SQL语句,这么做效率上很差!处理的方案是使用批处理,即一次向服务器发送多条SQL语句,然后由服务器一次性处理。

 

PreparedStatement的批处理有所不同,因为每个PreparedStatement对象都绑定一条SQL模板。所以向PreparedStatement中添加的不是SQL语句,而是给“?”赋值。

           con = JdbcUtils.getConnection();

           String sql = "insert into stu values(?,?,?,?)";

           pstmt = con.prepareStatement(sql);

           for(int i = 0; i < 10; i++) {

              pstmt.setString(1, "S_10" + i);

              pstmt.setString(2, "stu" + i);

              pstmt.setInt(3, 20 + i);

              pstmt.setString(4, i % 2 == 0 ? "male" : "female");

              pstmt.addBatch();

           }

           pstmt.executeBatch();

批量增加数据代码示例:

package com.rl.jdbc;

 

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

 

publicclass JDBCAdd4 {

 

    /**

     * @param args

     */

    publicstaticvoid main(String[] args) {

        //设置oracle数据库驱动的类

        String driverClass = "oracle.jdbc.OracleDriver";

        //定义连接oracleurl

        String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

        //用户名

        String username = "scott";

        //密码

        String password = "tiger";

        //定义connection连接

        Connection conn = null;

        //定义数据库的sql执行对象

        PreparedStatement ps = null;

        //定义要执行的sql增加语句

        String addsql = "insert into person values(personid.nextval,?,?,?) ";

   

        try {

           //注册数据库的驱动程序

           Class.forName(driverClass);

           //获得数据库的连接

           conn = DriverManager.getConnection(url, username,password);

           //创建sql对象

           ps = conn.prepareStatement(addsql);

           //person表插入100条数据

           for (inti = 0; i < 100; i++) {

               ps.setString(1, "李昆鹏");

               ps.setString(2, "地球");

               ps.setDate(3, new Date(System.currentTimeMillis()));

               //批量数据插入

               ps.addBatch();

           }

           //执行批量sql语句

           int[] a = ps.executeBatch();

           for (inti = 0; i < a.length; i++) {

               System.out.println("更新新数据条数:" + a[i]);

           }

        } catch (ClassNotFoundException e) {

           e.printStackTrace();

        } catch (SQLException e) {

           e.printStackTrace();

        } finally {

            try {

              if(ps != null)

               ps.close();

              if(conn != null)

               conn.close();

           } catch (SQLException e) {

               e.printStackTrace();

           }

        }

    }

}

 

 


http://www.niftyadmin.cn/n/1564536.html

相关文章

Object... 的用法

Object是所有类的基类&#xff0c;这个你可以查询jdk文档了解&#xff0c;所有类都继承自Object。 Object ...objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个方法可以传递多个参数&#xff0c;这个参数的个数是不确定的。这样你在方法体中需要相应的…

html5学习笔记1

今天开始学习html5&#xff0c;学习完后做个笔记&#xff0c;以便考察遗忘度。 首先学习了canvas的getImageData和putImageData&#xff0c;通过这2个方法可以获取和设置canvas上面对象的像素颜色。 getImageData返回的对象属性data包含了像素颜色值&#xff0c;一个像素点有4组…

JDBC封装DBUtil和DAO模式

------------------------------------- JDBC封装DBUtil和DAO模式---------------------------------------------- JdbcUtils工具类1 JdbcUtils的作用 你也看到了&#xff0c;连接数据库的四大参数是&#xff1a;驱动类、url、用户名&#xff0c;以及密码。这些参数都与特定数…

where 1=1有什么用?

为什么要在sql语句后边加上where 11 &#xff0c;对于初次见到的童鞋确实很纳闷。 觉得select * from table1 where 11 与 select * from table1完全没有区别。 其实这种想法是错的。记住本落格尔的名言【存在则合理】~~~ 不管sql语句中 where 11还是1<>2&#xff0c;aa…

关于document.form.取值问题

2019独角兽企业重金招聘Python工程师标准>>> 先看个函数&#xff1a; function selectUnleave() { var idobj document.leaveform.id; var LeaveBtobj document.leaveform.LeaveBt; for (var i0;i<idobj.length;i) { idobj[i].checked false; if (LeaveBtobj[…

JDBC中DAO模式的例子示范

----------------------------------------JDBC中DAO模式的例子示范--------------------------------------- 1 JdbcUtils的作用 你也看到了&#xff0c;连接数据库的四大参数是&#xff1a;驱动类、url、用户名&#xff0c;以及密码。这些参数都与特定数据库关联&#xff0c…

JAVA中的native是什么?

JAVA中的native是什么&#xff1f; native主要用于方法上 1、一个native方法就是一个Java调用非Java代码的接口。一个native方法是指该方法的实现由非Java语言实现&#xff0c;比如用C或C实现。2、在定义一个native方法时&#xff0c;并不提供实现体&#xff08;比较像定义一个…

Hibernate错误

1.错误提示&#xff1a; Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListenersat org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96) at org.hibernate.annotatio…