JinsnHS 2021-11-17 22:44 采纳率: 58.3%
浏览 27
已结题

jsp使用jdbc中的toString方法为什么返回的是字段?

如题,直接上图片和代码:

img

<%@ page import="java.sql.*" %>
<%--
  Created by IntelliJ IDEA.
  User: Jinsn
  Date: 2021/11/17
  Time: 18:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
        index.jsp部分:
                1.通过request获取用户表单。
                2.定义数据库驱动和创建连接。
                3.select获取数据库指定字段。
                4.将用户名和密码与数据库返回的查询字段进行对比:
                    存在用户名验证密码,不存在则提醒账号不存在。注册跳转到logup.jsp。
                    验证密码是否正确,不正确提示账号或密码错误。
                    验证码后续考虑添加。
                5.登录成功后操作数据库:
                    查询学生信息。
                    添加学生信息。
                    修改学生信息。
                    删除学生信息。
--%>

        <%
             String
                    driver = "com.mysql.cj.jdbc.Driver",
                    table = "jdbc:mysql://localhost:3306/userpwd?useUnicode=ture&characterEncoding=utf-8&useSSL=false",
                    username = "root",
                    passwd = "123456",

                     //获取用户输入的用户名
                    obtain_name =  request.getParameter("name"),
                     //获取用户输入的密码
                    obtain_password = request.getParameter("password");

                //request请求得到用户登陆输入的表单
                request.setCharacterEncoding("utf-8");//设置post编码防止乱码
            try {
                 //数据库方面
                 //加载和注册驱动程序
                Class.forName(driver);
                //连接数据库
                Connection connection = DriverManager.getConnection(table, username, passwd);
                if (!connection.isClosed()) {
                    System.out.println("数据库连接成功");
                }
                 //创建一个Statement对象,用于将SQL语句发送到数据库。
                Statement statement = connection.createStatement();
                 //创建查询语句
                String sql1 = "select 'user_name','user_password' from user";
                 //执行给定的SQL语句,该语句返回单个ResultSet对象。
                ResultSet select = statement.executeQuery(sql1);
                System.out.println(select);
                 //以Java编程语言中String此ResultSet对象的当前行中指定列的值,将返回的字段转换为字符串
                String uname;
                String upwd;
                while(select.next()) {
                    uname = select.getString("user_name");
                    upwd = select.getString("user_password");
                    out.print(uname +"\t"+ upwd);
                }

                out.print("用户表单:\t用户名"+obtain_name+"\t密码:\t"+obtain_password);
            } catch (ClassNotFoundException e){
                System.out.println("数据库驱动没有安装");
            } catch (SQLException e){
                System.out.println("数据库连接失败");
            }
        %>
</body>
</html>


这究竟是为什么呢?求解决方案!

  • 写回答

2条回答 默认 最新

  • zcl_1991 2021-11-18 09:34
    关注

    String sql1 = "select 'user_name','user_password' from user";
    你这个sql又没有查数据,你只是查两个字符串,即使你把 user表换成任何表都行,结果都一样;
    select 'user_name','user_password' from user 等于 select 'user_name','user_password' from xxx 等于 select 'user_name','user_password',效果都一样
    得把 引号去掉
    String sql1 = "select user_name, user_password from user";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月25日
  • 已采纳回答 11月18日
  • 创建了问题 11月17日

悬赏问题

  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)