请问一下这个问题要怎么改呀?
Exception:Cannot determine value type from string '通识教育课程'好像应该是要改数据库的类型,但是我改不来,有没有大佬能教一下,谢谢。
<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%>
<%@ page errorPage="error.jsp"%>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>培养方案</title>
<style>
.center
{
text-align:center;
display: block;
margin: auto;
}
td
{
text-align: center;
}
table {
margin: 0 auto;
text-align: center;
}
</style>
</head>
<body>
<img src="16.jpeg" height="100" class="center" >
<div style="text-align:center;"><a href="https://cas.whu.edu.cn/" target="_blank">武汉大学信息门户</a></div>
<h1 style="text-align:center;">武汉大学特色软件试验班培养方案</h1>
<table border="1" width="700" height="50" id="mytable1">
<thead>
<tr>
<th>课程类别</th>
<th>课程名称</th>
<th>授课教师</th>
<th>课程学分</th>
<th>课程绩点</th>
<th>课本图片</th>
</tr>
</thead>
<tbody>
<button onclick="table1()">点击显示/隐藏表格(第一学期)</button>
<tr>
<td colspan="6" style="background-color:blanchedalmond;" height="50" style="text-align:center;" >第一学期</td>
</tr>
<%
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC", "root",
"ming20040521");
//使用Statement对象
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from sheet1 ");
while (rs.next()) {
int sno = rs.getInt(1);
out.println("<tr><td>" + rs.getString(1) + "</td><td>" +rs.getString(2) + "</td><td>"
+ rs.getString(3) + "</td><td>" + rs.getString(4)+"</td><td>"+ rs.getString(5) + "</td><td>"+
rs.getString(6) + "</td><td>"+ "<td></tr>");
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
out.println("Exception:" + e.getMessage());
}
%>
</table>
<table border="1" width="700" height="50" id="mytable2">
<thead>
<tr>
<th>课程类别</th>
<th>课程名称</th>
<th>授课教师</th>
<th>课程学分</th>
<th>课程绩点</th>
<th>课本图片</th>
</tr>
</thead>
<tbody>
<button onclick="table2()">点击显示/隐藏表格(第二学期)</button>
<tr>
<td colspan="6" style="background-color:blanchedalmond;" height="50" style="text-align:center;" >第二学期</td>
</tr>
<script>
function table1()
{
var table = document.getElementById("mytable1");
if (table.style.display === "none")
{
table.style.display = "table";
}
else
{
table.style.display = "none";
}
}
</script>
<script>
function table2()
{
var table = document.getElementById("mytable2");
if (table.style.display === "none")
{
table.style.display = "table";
}
else
{
table.style.display = "none";
}
}
</script>
</body>
</html> 这个前端代码跟你的数据库没有关系吧? isdkz 发表于 2023-7-11 01:26
这个前端代码跟你的数据库没有关系吧?
应该是。。所以我应该怎么改数据库的东西,我把数据库贴在后面了
不懂,去问问gpt-> c.binjie.fun 币 谢谢大佬的鱼币{:10_245:} Heng_Xin 发表于 2023-7-11 12:10
谢谢大佬的鱼币
。。。 这个错误信息表明在数据库查询结果中,有一个字符串'通识教育课程'无法确定其对应的值类型。从代码来看,这个问题可能出现在以下这行代码:
out.println("<tr><td>" + rs.getString(1) + "</td><td>" +rs.getString(2) + "</td><td>"
+ rs.getString(3) + "</td><td>" + rs.getString(4)+"</td><td>"+ rs.getString(5) + "</td><td>"+
rs.getString(6) + "</td><td>"+ "<td></tr>");
在这里,你将数据库查询结果的各个字段都视为字符串使用了rs.getString()方法,但是如果数据库中的字段实际上是其他数据类型(如整数、浮点数等),就会导致类型转换错误。
要解决这个问题,你需要确定数据库中每个字段的实际数据类型,并使用相应的ResultSet方法进行获取。例如,如果某个字段是整数类型,可以使用rs.getInt()方法;如果是浮点数类型,可以使用rs.getFloat()方法。
你可以根据数据库中每个字段的实际类型进行相应的更改。这样就可以正确地确定每个字段的值类型,避免类型转换错误。
页:
[1]