JSP Web 应用开发 数据库
executeUpdate()方法抛出异常
个人查错定位到24行
运行到23行输出2,抛出SQLExcepion异常输出1,3未输出求解
源代码
<%--
Created by IntelliJ IDEA.
User: 26316
Date: 2023/3/19
Time: 19:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
Title
<%
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/jqe_school?characterEncoding=utf-8";
conn = DriverManager.getConnection(url,"root","newpassword");
stmt = conn.createStatement();
String sql = "insert into Student values(907,'李强','男',1990,'电子系','北京市西城区')";out.println("2");
int num = stmt.executeUpdate(sql);out.println("3");
stmt.close();
conn.close();
out.print("插入数据影响的行数为"+num);
}catch (ClassNotFoundException e){
e.printStackTrace();
}catch (SQLException e){
out.println("1");
e.printStackTrace();
}
%>
保存时,报错了。
看下控制台的异常信息,应该是有提示的。
根据代码和错误信息的描述,可以猜测在第 24 行出现了问题,导致程序抛出了 SQLException 异常。具体问题需要进一步分析代码和异常信息。
根据代码分析,第 24 行是执行 SQL 语句的语句,即执行 "stmt.executeUpdate(sql)"。因此,可以猜测出现了 SQL 语法错误或执行错误。具体原因可能是表名或字段名拼写错误、数据类型不匹配等问题,需要进一步检查 SQL 语句是否正确。
另外,根据异常信息显示只输出了 "1",没有输出其他信息。这可能是因为程序在输出 "1" 后抛出了异常,导致程序跳转到异常处理代码块,没有执行后续的输出语句。为了更好地定位问题,可以将异常处理代码块的位置移动到 try 代码块的后面,或者在异常处理代码块中添加日志输出等信息。
数据库连上了么?表结构和你的插入语句对应么
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!