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

2023-05-16

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

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

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

在这里插入图片描述

文章目录

  • 分析表结构
  • 过滤器
  • index.html
  • addBook.jsp
  • Book类
  • 测试一下
    • 到数据库去看看

分析表结构

用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类

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

测试一下

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

到数据库去看看

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 休眠批量插入

    这是我在数据库中插入批次的代码 Override public void addMultiple session get session tx session beginTransaction for int i 0 i lt 100 i
  • JDBC SQL 客户端工具推荐[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一个好的 开源的 独立的开发工具来使用 JDBC 查询 SQL 数据库并将结果导出到文件吗 我知道许多数据库供应商都提供了他们
  • 包 oracle.jdbc.driver 不存在

    以下代码出错 发生错误 1 import java sql public class DBConnect public static void main String a throws SQLException package oracle
  • 用于 SQL 更新语句的 Java 单工作线程

    我正在开发一个基于 Java 的服务器 其中有多个线程 每个连接的用户一个线程 一些额外的线程 会涉及到一些数据库连接 所以我在想服务器每次创建一个SELECT查询数据库时 它将为此启动一个新线程 以防止当前线程阻塞 我计划为此使用连接池
  • 如何使用 JDBC 进行扩展插入而不构建字符串?

    我有一个应用程序可以解析日志文件并将大量数据插入数据库 它是用 Java 编写的 并通过 JDBC 与 MySQL 数据库通信 我尝试了不同的插入数据的方法 以找到适合我的特定用例的最快方法 目前看来表现最好的方法是发出扩展插入 例如 具有
  • 使用 MVC 和 DAO 模式在 JSP 页面中的 HTML 中显示 JDBC 结果集

    我正在使用 JSP 和 JDBC 实现 MVC 我已将数据库类文件导入到 JSP 文件中 并且想显示数据库表的数据 我不知道该如何归还ResultSet从 Java 类到 JSP 页面并将其嵌入到 HTML 中 我怎样才能实现这个目标 在设
  • JDBC 连接池选项:DBCP 与 C3P0 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 适用于 Java JDBC 的最佳连接池库是什么 我正在考虑两个主要候选者 免费 开源 阿帕奇 DBC
  • android sqlite 一次读取所有行

    有没有办法读取 sqlite 表中的所有行并在文本视图中立即显示它们 这就是我阅读它们的方式 它逐行阅读 retrieves all the titles public Cursor getAllTitles return db query
  • Oracle 连接池类

    我想在 Helper 类中为 Oracle DB 设置连接池 public class DbConnection Data source for the pooled connection private static OracleData
  • PostgreSQL JDBC4 的连接池

    最近我从以下网站下载了 PostgreSQL 的 JDBC 驱动程序here https jdbc postgresql org download html 由于我使用的是 Java 1 7 JVM 并且它是这样写的 如果您使用 1 6 或
  • 使用 JDBC 3.0 实现对嵌套事务的支持

    我们的遗留应用程序使用 JDBC 3 0 它通过实现自己的事务管理器来支持事务 该事务管理器能够为每个线程返回相同的 JDBC 连接 我最近发现的问题是它不支持嵌套事务 如果一个事务在另一个事务中启动 那么在内部事务上下文中运行的每个 SQ
  • AWS EMR PySpark 连接到 mysql

    我正在尝试使用 jdbc 通过 pyspark 连接到 mysql 我可以在 EMR 之外完成此操作 但是当我尝试使用 EMR 时 pyspark 无法正确启动 我在我的机器上使用的命令 pyspark conf spark executo
  • Tomcat 连接池与准备好的语句缓存

    从 DBCP 连接池升级到 Tomcat 自己的实现 基于优秀的比较here http tomcat apache org tomcat 7 0 doc jdbc pool html Introduction 我有点困惑为什么他们放弃了这两
  • 在 JDBC PL/SQL 块中多次使用命名参数时出错

    当使用命名参数调用 PL SQL 块时出现错误 当所有命名参数仅使用一次时 我的代码工作正常 但是当我复制标有 SQL 的 SQL 时 然后所有命名参数 以冒号开头 q 都使用了两次 现在我得到一个 SQL 异常 它说 参数名称的数量与注册
  • 在 Android 中使用 SQL (JDBC) 数据库

    在旧的 Java 应用程序中 我使用以下代码连接到 SQL 数据库并将其用于某些查询 private Connection dbConnection null System setProperty derby system home C C
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 为什么 Clojure MySQL 查询结果中出现“M”

    我有一个返回一行的 Clojure 查询 下面是返回行 映射 的部分打印输出 employer percent 0 00M premium 621 44M 这两列在mysql表中分别是decimal 5 2 和decimal 7 2 为什么
  • Kafka JDBC Sink Connector 对于具有可选字段的模式的消息给出空指针异常

    Kafka JDBC Sink Connector 对于具有可选字段 parentId 的模式的消息给出空指针异常 我错过了什么吗 我正在使用开箱即用的 JSONConverter 和 JDBC Sink Connector 关于 Kafk
  • 配置“DataSource”以使用 SSL/TLS 加密连接到 Digital Ocean 上的托管 Postgres 服务器

    我正在尝试托管数据库服务 https www digitalocean com products managed databases on 数字海洋网 https en wikipedia org wiki DigitalOcean 创建了
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD

随机推荐