JSP文件:[/testYuYue.jsp] 的第 [39] 行发生了一个错误 The method setString(int, String) in the type PreparedStatement is not applicable for the arguments (int, int) 36: PreparedStatement pstmt = conn.prepareStatement(INSERT_SQL); { 37: pstmt.setString(1, usernum); 38: pstmt.setString(2, stime); 39: pstmt.setString(3,0); 40: pstmt.setString(4, people); 41: count = pstmt.executeUpdate(); 42: }} catch (SQLException e)

时间: 2024-02-27 21:55:13 浏览: 19
根据错误提示,第39行的问题是setString方法的参数类型不匹配。setString方法需要接收一个String类型的参数,但是你传入了一个int类型的参数0。因此,你需要将第39行的代码改为: ``` pstmt.setInt(3, 0); ``` 或者将0改为字符串类型的"0": ``` pstmt.setString(3, "0"); ``` 这样就可以解决这个错误了。
相关问题

设计一个jsp文件,实现留言板功能

好的,留言板功能一般需要数据库的支持,我们先来设计一下数据库表。 假设我们需要存储留言的用户名、留言内容和留言时间,我们可以创建一个名为 message 的表,表结构如下: ``` CREATE TABLE message ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), content TEXT, create_time DATETIME ); ``` 接下来,我们可以创建一个 JSP 页面,实现留言板的功能。下面是一个简单的实现,代码中使用了 JSTL 和 EL 表达式。 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>留言板</title> </head> <body> <h1>留言板</h1> <h2>发表留言</h2> <<form action="message.jsp" method="post"> <label for="username">用户名:</label> <input type="text" name="username" id="username"><br> <label for="content">留言内容:</label> <textarea name="content" id="content" rows="5"></textarea><br> <button type="submit">发表留言</button> </form> <hr> <h2>留言列表</h2> <c:forEach items="${messages}" var="message"> <p>${message.username} 于 ${message.create_time} 留言:</p> <p>${message.content}</p> <hr> </c:forEach> </body> </html> ``` 在 JSP 页面中,我们使用了一个表单来提交留言。表单中包含了用户名和留言内容两个字段,并且使用了 POST 方法提交表单。 在页面的下半部分,我们使用了 JSTL 的 forEach 标签来循环遍历留言列表,使用 EL 表达式来显示留言的用户名、留言时间和留言内容。 接下来,我们需要编写 message.jsp 文件来处理表单提交和查询留言的逻辑。下面是一个简单的实现。 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import="java.sql.*,java.util.*" %> <% String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); if (request.getMethod().equals("POST")) { String username = request.getParameter("username"); String content = request.getParameter("content"); Date create_time = new Date(); stmt = conn.prepareStatement("INSERT INTO message(username, content, create_time) VALUES (?, ?, ?)"); stmt.setString(1, username); stmt.setString(2, content); stmt.setTimestamp(3, new Timestamp(create_time.getTime())); stmt.executeUpdate(); } stmt = conn.prepareStatement("SELECT * FROM message ORDER BY create_time DESC"); rs = stmt.executeQuery(); List<Map<String, Object>> messages = new ArrayList<>(); while (rs.next()) { Map<String, Object> message = new HashMap<>(); message.put("username", rs.getString("username")); message.put("content", rs.getString("content")); message.put("create_time", rs.getTimestamp("create_time")); messages.add(message); } request.setAttribute("messages", messages); } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } %> <jsp:forward page="message_board.jsp"></jsp:forward> ``` 在 message.jsp 文件中,我们首先定义了数据库的连接参数,并且使用 JDBC 连接到数据库。然后,我们通过 request.getMethod() 方法判断当前请求的方法是否为 POST,如果是 POST 方法,就获取表单提交的用户名、留言内容和留言时间,并且插入到数据库的 message 表中。 接下来,我们通过执行 SQL 查询语句,获取留言列表,并且将留言列表保存到一个 List<Map<String, Object>> 对象中。最后,我们使用 request.setAttribute() 方法将留言列表保存到 request 对象中,并且通过 jsp:forward 标签跳转回到 message_board.jsp 页面。在 message_board.jsp 页面中,我们就可以使用 JSTL 和 EL 表达式来显示留言列表了。

编写程序,实现对数据库StudentInfo中的表student进行插入操作.要求使用预处理语句对象PreparedStatement完成以下数据的插入: insert into student values('001','张三',18,'女') 注:给定数据库登录用户名:sa,密码:123. Input.jsp: 请输入待新增的学生信息 学号: 姓名: 年龄: 性别: addStudent.jsp: <% String url="jdbc:sqlserver://localhost;databaseName=StudentInfo"; request.setCharacterEncoding("utf-8"); String sno = request.getParameter("sno"); String sname = request.getParameter("sname"); int sage = Integer.valueOf(request.getParameter("sage")); String sex = request.getParameter("sex"); try{ //补全此部分代码 } // 捕获异常 catch(SQLException ex) { System.out.println ("\n*** 发生SQL异常 ***\n"+ex.getMessage()); } catch(ClassNotFoundException ex) { System.out.println(ex); }

addStudent.jsp: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Add Student</title> </head> <body> <h1>Add Student</h1> <form action="insertStudent.jsp" method="post"> <label for="sno">学号:</label> <input type="text" id="sno" name="sno" /><br> <label for="sname">姓名:</label> <input type="text" id="sname" name="sname" /><br> <label for="sage">年龄:</label> <input type="text" id="sage" name="sage" /><br> <label for="sex">性别:</label> <input type="text" id="sex" name="sex" /><br> <input type="submit" value="提交" /> </form> </body> </html> ``` insertStudent.jsp: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert Student</title> </head> <body> <% String url="jdbc:sqlserver://localhost;databaseName=StudentInfo"; request.setCharacterEncoding("utf-8"); String sno = request.getParameter("sno"); String sname = request.getParameter("sname"); int sage = Integer.valueOf(request.getParameter("sage")); String sex = request.getParameter("sex"); try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url,"sa","123"); String sql = "insert into student values(?,?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, sno); pstmt.setString(2, sname); pstmt.setInt(3, sage); pstmt.setString(4, sex); int num = pstmt.executeUpdate(); if(num > 0){ out.print("插入成功!"); } pstmt.close(); conn.close(); } catch(SQLException ex){ System.out.println ("\n*** 发生SQL异常 ***\n"+ex.getMessage()); } catch(ClassNotFoundException ex){ System.out.println(ex); } %> </body> </html> ```

相关推荐

public class StudentDao { private static Connection conn = null; public static void initConnection() throws Exception { // 连接MySQL Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sys", "root", "1234"); } // 返回所有学生 public ArrayList<Student> getAllStudents() throws Exception { ArrayList<Student> al = new ArrayList<Student>(); initConnection(); String sql = "SELECT num,name FROM tb_student"; Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); while (rs.next()) { Student stu = new Student(); al.add(stu); } rs.close(); stat.close(); closeConnection(); return al; } // 添加学生信息到数据中 public int addStudent(Student student) throws Exception { initConnection(); //创建一个sql语句 String sql = "insert into tb_student(num,name) values (?, ?)"; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 ps.setString(1,student.getNum()); ps.setString(2,student.getName()); //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 conn.close(); return retv; } // 修改学生信息 public int updateStudent(Student student) throws Exception { //创建一个连接 initConnection(); //创建一个sql语句 String sql = ""; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 closeConnection(); //返回影响的行数 return retv; } // 删除学生 public int delStudent(Student student) throws Exception { //创建一个连接 initConnection(); //创建一个sql语句 String sql = ""; //创建一个PreparedStatement 对象 PreparedStatement ps=conn.prepareStatement(sql); //填充参数 //执行sql语句 int retv=ps.executeUpdate(); ps.close(); //关闭链接 closeConnection(); //返回影响的行数 return retv; } public static void closeConnection() throws Exception { conn.close(); } }请把代码补充完整,并写出相应的增、删、改、查的.jsp代码

最新推荐

recommend-type

peak-linux-driver-8.15.2.tar

peak-linux-driver-8.15.2.tar
recommend-type

VSCodeUserSetup-x64-1.86.1.exe

VSCodeUserSetup-x64-1.86.1
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这
recommend-type

Windows 运行Python脚本

要在 Windows 上运行 Python 脚本,你需要先安装 Python。可以从官网下载 Python 安装包并按照提示进行安装。安装完成后,就可以在命令行中输入 `python` 命令,进入 Python 解释器环境。 接着,你可以编写 Python 脚本,保存为 `.py` 后缀的文件。在命令行中进入脚本所在的目录,输入 `python script.py` 命令来运行脚本。其中 `script.py` 是你的脚本文件名。 如果你想在 Windows 上运行一个 Python 程序,但不想打开命令行窗口,可以将脚本文件拖动到 Python 可执行文件 `python.exe` 上,