hadoop JDBC (一)

本文通过使用Java JDBC编程方式,对比了使用PreparedStatement与Statement批量插入数据到MySQL数据库的性能差异。测试中分别实现了两种方法,并记录了每种方法所需的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import org.junit.Test;


import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;

public class JdbcTest {
    @Test
    public void testPreparedStatement() throws Exception {
        long start=System.currentTimeMillis();
        String driveclass="com.mysql.jdbc.Driver";
        String url="jdbc:mysql://localhost:3306/bigtable";
        String username="root";
        String password="root";
        Class.forName(driveclass);
        java.sql.Connection conn= DriverManager.getConnection(url,username,password);

        conn.setAutoCommit(false);

        //创建语句
        String sql="insert into persion(name,age) values(?,?)";
        PreparedStatement ppst= (PreparedStatement) conn.prepareStatement(sql);
        for(int i=0;i<10000;i++){
            ppst.setString(1,"tom"+i);
            ppst.setInt(2,i%100);
            ppst.addBatch();
            if(i%2000==0){
                ppst.addBatch();
            }
        }
        ppst.executeBatch();
        conn.commit();
        ppst.close();
        conn.close();
        System.out.println(System.currentTimeMillis()-start);

    }
    public void testStatement() throws Exception {
        long start=System.currentTimeMillis();
        String driverClass="com.mysql.jdbc.Driver";
        String url="jdbc:mysql://localhost:3306/bigtable";
        String username="root";
        String password="root";
        //取得连接
        Class.forName(driverClass);
        java.sql.Connection conn= DriverManager.getConnection(url,username,password);

        conn.setAutoCommit(false);
        //进行表的操作
        Statement st=conn.createStatement();
        for(int i=0;i<10000;i++){
            String sql="insert into persion(name,age) values(tom"+i+","+i+")";
            st.execute(sql);
        }
        conn.commit();
        st.close();
        conn.close();
        System.out.println(System.currentTimeMillis()-start);

    }
}

初步的JDBC学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值