Jdbc大数据




 
 

import tang.heima.util.JdbcUtil;
/*
 * JDBC进行批处理方式有两种:
 *         第一个:使用statement进行批处理可以批处理(执行不同类型的sql语句)
 *         第二个:使用preparedStatement进行批处理执行的是(同一类型的sql语句)
 * 
*/
public class BatchTest {
    
    /**
     *   可以执行的不同一类型的语句 
     */
    @Test
    public void statementTestBatch() {
        Connection conn = null;
        Statement stat = null;
        
        try {
            //获得连接
            conn=JdbcUtil.getConnection();
            //Statement可以执行任意的sql语句
            stat=conn.createStatement();
            stat.addBatch("create database mydb3 character set utf8");
            stat.addBatch("use mydb3");
            stat.addBatch("create table giels(name varcahr(30),age int,city varchar(30) ");
            stat.addBatch("insert into girls values('zhangbozhi',40,'香港')");
            stat.addBatch("insert into girls values('lingqinxia',26,'香港')");
            stat.addBatch("insert into girls values('zongchuhong','43','北京')");
        
            stat.addBatch("delete from girls where name='zhongbizhi'");
            //执行批处理
            stat.executeBatch();
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
        finally{
            JdbcUtil.release(conn, stat, null);
        }
    }
    
    /**
     * 执行的是同一类型的sql语句
     */
    @Test
    public void preparedStatementTestBatch() {
        Connection conn = null;
        PreparedStatement  stat = null;
        
        try {
            //获得连接
            conn = JdbcUtil.getConnection();
            conn.prepareStatement("insert into users values(?,?,?,?)");
            for (int i = 0; i < 100; i++) {
                
                stat.setInt(1,i);
                stat.setString(2, "name"+i);
                stat.setString(3, "password"+i);
                stat.setString(4, "nickname"+i);
                //添加封装
                stat.addBatch();
                
                //为了提高效率
                if (i%50==0) {
                    //执行批处理
                    stat.executeBatch();
                    //清空已经执行的批处理
                    stat.clearBatch();
                }
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            JdbcUtil.release(conn, stat, null);
        }
    }
}

猜你喜欢

转载自huanxiang0220.iteye.com/blog/2199293