JavaWeb——数据库操作
三、通过 JDBC 向 MySQL 数据库添加数据
1、在目标数据库创建目标数据表
- 可以使用 SQL 语句或 MySQL 数据库可视化工具在目标数据库中添加目标数据表,表结构如下:
- 其中 id 和 bookCount 为无符号,将表命名为 tb_books。
2、创建一个 Bean
- 创建一个名为 book 的 Bean,用于从网页表单中传输数据,代码如下:
//IntelliJ IDEA //JavaWebProject1 //Book //2019/12/1 // Author:御承扬 //E-mail:2923616405@qq.com package com.lyq.bean; public class Book { private int id; //编号 private String name; //图书名称 private double price; //价格 private int bookCount; //数量 private String author; //作者 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getBookCount() { return bookCount; } public void setBookCount(int bookCount) { this.bookCount = bookCount; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
3、JSP 页面
- 首先是一个填写书籍信息的 JSP 页面,代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>图书信息登记</title> <style type="text/css"> body{ background: #d7c7e9; align-items: center; text-align: center; } </style> <script type="text/javascript"> function check(form){ with(form){ if(name.value === ""){ alert("图书名称不能为空"); return false; } if(price.value === ""){ alert("价格不能为空"); return false; } if(bookCount.value === ""){ alert("图书数量不能为空"); return false; } if(author.value === ""){ alert("作者不能为空"); return false; } return true; } } </script> </head> <body> <form action="AddBook.jsp" method="post" onsubmit="return check(this);"> <table align="center" width="450"> <tr> <td align="center" colspan="2"> <h2>添加图书信息</h2> <hr> </td> </tr> <tr> <td align="right">图书名称:</td> <td> <label> <input type="text" name="name"/> </label> </td> </tr> <tr> <td align="right">价格:</td> <td> <label> <input type="text" name="price"/> </label> </td> </tr> <tr> <td align="right">数量:</td> <td> <label> <input type="text" name="bookCount"/> </label> </td> </tr> <tr> <td align="right">作者:</td> <td> <label> <input type="text" name="author"/> </label> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="提交"> </td> </tr> </table> </form> </body> </html>
- 再同级目录里新建一个 JSP 页面,用于处理书籍信息向数据库写入的操作,我这里命名为 AddBook.jsp,代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.SQLException" %> <%@ page import="java.sql.PreparedStatement" %> <html> <head> <title>添加结果</title> <style type="text/css"> body{ background: #d7c7e9; align-content: center; text-align: center; } </style> </head> <body> <%request.setCharacterEncoding("UTF-8");%> <jsp:useBean id="book" class="com.lyq.bean.Book"></jsp:useBean> <jsp:setProperty name="book" property="*"/> <% Connection conn =null; try{ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); out.print("驱动器加载失败"); } String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8"; String username = "root"; String password = "*********"; try{ conn = DriverManager.getConnection(url,username,password); }catch (SQLException e){ out.println(e.getMessage()); out.println("数据库连接失败"); } if(conn != null){ String sql = "insert into tb_books(name,price,bookCount,author)values(?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1,book.getName()); ps.setDouble(2,book.getPrice()); ps.setInt(3,book.getBookCount()); ps.setString(4,book.getAuthor()); int row = ps.executeUpdate(); if(row>0){ out.println("成功添加了" + row + "条数据!"); } } }catch (Exception e){ e.printStackTrace(); out.print("图书信息添加失败!"); } %> <br> <a href="book.jsp">返回</a> </body> </html>
4、使用 JSP 页面
- 再 JavaWeb 项目的 index.jsp 页面添加对刚刚新建的 JSP 页面的使用,示例如下:
<input type="button" value="图书信息登记" onclick="window.location.href='JDBCOption/book.jsp'">
- 渲染效果如下:
- 程序无错误成功向数据库写入数据后,提示如下:
- 回到 MySQL 数据库可视化工具,执行查询语句,返回结果如下:
- 至此,成功用 JSP 向数据库写入数据。