JDBC预编译

 

JDBC预编译

直接代码记录

package com.guisha.JDBC.Privatre;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JDBCBatch {
    public static void main(String[] args) throws Exception {

        Connection conn = null;
        PreparedStatement ps = null;
        //需要执行的sql语句
        String sql = "insert into student (id,name,drte) values (?,?,?)";
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取数据库链接
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "guisha");
        //创建一个PreparedStatement对象,用于向数据库发送参数化的SQL语句。
        //带或不带IN参数的SQL语句都可以预编译并存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行此语句。
        //注意:这个方法是为了处理从预编译中受益的参数SQL语句而优化的。如果驱动程序支持预编译,prepareStatement方法将把语句发送到数据库进行预编译。有些驱动程序可能不支持预编译。
        ps = conn.prepareStatement(sql);
        //循环插入数据
        for (int i = 0; i < 100; i++) {
            //通过向预编译SQL命令填充数据生成全新的SQL命令
            ps.setInt(1, i);
            ps.setString(2, "roo_" + i);
            ps.setString(3, "河南省");
            //向这个PreparedStatement对象的命令批处理添加一组参数。
            ps.addBatch();
        }
        ps.executeBatch();
        //向数据库提交一批命令以便执行,如果所有命令都成功执行,则返回更新计数数组。返回的数组的int元素按照与批处理中的命令对应的顺序排列,这些命令是根据它们添加到批处理中的顺序排列的。
        // executeBatch方法返回的数组中的元素:
        //int[] ints = ps.executeBatch();
        //System.out.println(ints.toString());

        //关闭资源
        ps.close();
        conn.close();
    }

}

 

posted @ 2021-01-13 21:46  Centerless  阅读(484)  评论(0)    收藏  举报