Wengyou 发表于 2023-7-11 01:13:34

请问一下这个问题要怎么改呀?

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:23

这个前端代码跟你的数据库没有关系吧?

Wengyou 发表于 2023-7-11 01:31:21

isdkz 发表于 2023-7-11 01:26
这个前端代码跟你的数据库没有关系吧?

应该是。。所以我应该怎么改数据库的东西,我把数据库贴在后面了

歌者文明清理员 发表于 2023-7-11 11:30:23

不懂,去问问gpt-> c.binjie.fun

Threebody1 发表于 2023-7-11 11:30:52

Heng_Xin 发表于 2023-7-11 12:10:50

谢谢大佬的鱼币{:10_245:}

Wengyou 发表于 2023-7-11 13:49:01

Heng_Xin 发表于 2023-7-11 12:10
谢谢大佬的鱼币

。。。

陶远航 发表于 2023-7-11 16:10:44

这个错误信息表明在数据库查询结果中,有一个字符串'通识教育课程'无法确定其对应的值类型。从代码来看,这个问题可能出现在以下这行代码:
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]
查看完整版本: 请问一下这个问题要怎么改呀?