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:[email protected]
    
    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、检查后台数据库情况

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

上一篇

下一篇

发布了146 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42896653/article/details/103375979