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、检查后台数据库情况
- 执行查询语句返回结果:
- 可见批处理成功执行。