JavaWeb——操作数据库之 JDBC 批处理MySQL

JavaWeb——JDBC 操作数据库

六、MySQL 批处理

  • 批处理,在数据库中是一个经常进行的操作,接下实现在 JSP 页面对 MySQL 数据库进行批处理操作。

1、准备步骤

  • 首先在 MySQL 的目标数据库,新建一个数据表:
     CREATE TABLE `tb_students` (
      `id` int(10) unsigned NOT NULL COMMENT '学号',
      `name` varchar(45) NOT NULL COMMENT '姓名',
      `sex` tinyint(1) NOT NULL COMMENT '性别',
      `age` int(10) unsigned NOT NULL COMMENT '年龄',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表'
    
  • 在可视化界面如下:
    在这里插入图片描述

2、编写 Bean

  • 新建一个 Bean,命名为 Batch,代码如下:
    //IntelliJ IDEA
    //JavaWebProject1
    //Batch
    //2019/12/3
    // Author:御承扬
    //E-mail:2923616405@qq.com
    
    package com.lyq.bean;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    public class Batch {
        public Connection getConnection(){
            Connection conn;
            try{
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8";
                String username = "root";
                String password = "********";
                try{
                    conn = DriverManager.getConnection(url, username, password);
                    if(conn != null)
                    {
                        return conn;
                    }
                }catch (SQLException e){
                    e.printStackTrace();
                }
            }catch (ClassNotFoundException e){
                e.printStackTrace();
            }
            return null;
        }
    
        public int saveBatch(){
            int row =0;
            Connection conn = getConnection();
            try{
                String sql = "insert into tb_students(id,name,sex,age) values(?,?,?,?)";
                PreparedStatement ps = conn.prepareStatement(sql);
                for(int i=0; i<10; i++){
                    ps.setInt(1,i+1);
                    ps.setString(2, "学生"+i);
                    ps.setBoolean(3, i % 2 == 0);
                    ps.setInt(4, (((i+1)%10)*2+10));
                    ps.addBatch();
                }
                int[] rows = ps.executeBatch();
                row = rows.length;
                ps.close();
                conn.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            return row;
        }
    }
    

3、应用 Bean

  • 编写一个简单的 JSP 页面用于使用刚刚创建的 Bean,代码如下:
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>批处理测试</title>
        <style type="text/css">
            body{
                background: #d7c7e9;
                align-items: center;
            }
        </style>
    </head>
    <body>
    <jsp:useBean id="batch" class="com.lyq.bean.Batch"></jsp:useBean>
    <%
        int row = batch.saveBatch();
        if(row == 0){
            out.print("执行批处理失败");
        }else{
            out.println("批处理了【" + row + "】条数据!");
        }
    %>
    </body>
    </html>
    
  • 运行结果:
    在这里插入图片描述

4、检查后台数据库情况

  • 执行查询语句返回结果:
    在这里插入图片描述
  • 可见批处理成功执行。

上一篇

下一篇

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御承扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值