javaweb之JDBC技术基础训练二图书管理系统:从数据库插入数据功能实现

💡💡💡javaweb之JDBC技术基础训练之管理系统全集🙌🙌🙌👇👇👇

添加链接描述javaweb之JDBC技术基础训练—图书管理系统:数据准备、可能遇到的问题的解决方法🤟
javaweb之JDBC技术基础训练二图书管理系统:从数据库插入数据功能实现🤟
javaweb之JDBC技术基础训练三图书管理系统:查询数据功能实现🤟
javaweb之JDBC技术基础训练四图书管理系统:修改功能的实现🤟
javaweb之JDBC技术基础训练五图书管理系统:删除数据项🤟
javaweb之JDBC技术基础训练五图书管理系统:删除数据项🤟

现在我们以插入smbms_address表为例,演示插入表的过程

在这里插入图片描述

分析表结构

用Navicat for mysql查看一下该表的结构:

在这里插入图片描述

过滤器

在写代码之前,我习惯先把过滤器写好,就是怕待会数据传输的时候遇到乱码的问题,也可以不写过滤器有一些其他的方法去解决数据乱码问题,比如搜素🔍Java web后台插入数据库中文乱码问题解决,你可以看到一堆信息,有的说
要到tomcat6.x服务器编码设置
有的又说改web.xml文件
改来改去的,直接写一个过滤器,这样所有的数据进来和出去都解决了,不香🐎,过滤器针对本来的主要用处之一就是过滤数据,所以我喜欢直接写个简单的过滤器去解决
记住,以下设置的时候变量名要和数据库的字段名要对应!!!不然插入会失败的!
在这里插入图片描述

package com.xmonster.filter;
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
    public void init(FilterConfig filterConfig) throws ServletException {

    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        chain.doFilter(request,response);
    }
    public void destroy() {
    }
}

在web.xml中配置一下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>com.xmonster.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

index.html

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.SQLException" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2021/10/31
  Time: 11:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
    <form action="addBook.jsp" method="post" οnsubmit="return check(this)">
      <table align="center" width="500">
        <tr>
          <td align="center" colspan="2">添加图书信息表</td>
        </tr>
        <tr>
          <td align="right">图书名称:</td>
          <td><input type="text" name="name"></td>
        </tr>

        <tr>
          <td align="right">价格:</td>
          <td><input type="text" name="price"></td>
        </tr>

        <tr>
          <td align="right">数量:</td>
          <td><input type="text" name="bookCount"></td>
        </tr>

        <tr>
          <td align="right">作者:</td>
          <td><input type="text" name="author"></td>
        </tr>

        <tr>
          <td align="center" colspan="2">
            <input type="submit" value="添加该图书信息"/>
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

addBook.jsp

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2021/10/31
  Time: 19:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="book" class="com.xmonster.bean.Book"></jsp:useBean>
<jsp:setProperty property="*" name="book"/>
<%
    try{
    Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
        String username="root";
        String password="123456";
        Connection connection = DriverManager.getConnection(url, username, password);
        String sql = "insert into tb_book(name, price, bookCount, author) VALUES (?,?,?,?);";
        PreparedStatement ps = connection.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+"条数据");
        }
        ps.close();
        connection.close();

    }catch (Exception e){
        out.println("插入失败");
        e.printStackTrace();
    }
    
%>
<br>
<a href="index.jsp">再插入一条数据吧~</a>

Book类

在这里插入图片描述
记住,变量名要对应!!!不然插入会失败的!

测试一下

在这里插入图片描述
在这里插入图片描述

到数据库去看看

在这里插入图片描述
可以看到已经成功插入啦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是X大魔王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值