Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要获取单个数据库值吗_Java_Sql_Database_Swing_Resultset - Fatal编程技术网

Java 要获取单个数据库值吗

Java 要获取单个数据库值吗,java,sql,database,swing,resultset,Java,Sql,Database,Swing,Resultset,我有一个登录表单,如果登录成功。我想获得已登录的服务器的名称,请参见我的代码: try { if(jTextField1.getText().equals("")) { JOptionPane.showMessageDialog(null, "Pleass Input Username"); } else if(jPasswordField1.getText().equals(""))

我有一个登录表单,如果登录成功。我想获得已登录的服务器的名称,请参见我的代码:

 try {
             if(jTextField1.getText().equals(""))
        {
              JOptionPane.showMessageDialog(null, "Pleass Input Username");
        }
        else if(jPasswordField1.getText().equals(""))
        {
              JOptionPane.showMessageDialog(null, "Please Input Password");
        }
        else
        {
            rs = con.executeQuery("SELECT * FROM MsEmployee WHERE EmployeeID='"+jTextField1.getText()+"' And Password='"+jPasswordField1.getText()+"'");
            if (rs.next())
            {
             help.IDemployee = jTextField1.getText(); 
             JOptionPane.showMessageDialog(null, "Login Success! welcome "+ help.IDemployee);
             MainMenu mm = new MainMenu(true);
             mm.setVisible(true);
             this.dispose();
            }else
            {
            JOptionPane.showMessageDialog(null, "Username not found!!");
            }
        }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null,ex.getMessage());
        }
因此,我想显示从
MSEmployee
获得的
EmployeeName
,它是从
EmployeeID
获得的。 我是这样想的:

String qry;
qry = "Select EmployeeName From MsEmplyee WHERE EmployeeID = '" + jtextField1.gettext() + "'" ; 

但是当我编译时,它只是打印上面的文本,而不是获取值。有人能帮忙吗?

正如评论中所建议的,请检查哪个名字,msemplye/MsEmployee,是正确的

这与您的问题无关,但我认为您的代码中有一个(可能的)改进

而不是使用

if(jTextField1.getText().equals(""))
在使用equals()方法之前,最好先使用trim()方法。所以,如果用户在jTextField1中输入一个空格,在这种情况下,您的检查将被绕过。因此,最好使用trim()方法从字符串中删除所有第一个和最后一个空格字符

if(jTextField1.getText().trim().equals(""))

密码字段也可以这样做。

您没有读取结果集值

// help.IDemployee = jTextField1.getText(); 
help.IDemployee = rs.getString(1);
第一列的列索引从1开始。不是从0开始,你可以试试这个

字符串EmployeeName=rs.getString(“数据库中的列标签(类似EmployeeName)”)


System.out.println(EmployeeName)

你忘了“rs=con.executeQuery(qry)”??您是否尝试过使用某种SQL工具直接在数据库上执行生成的查询?MsEmployee表的结构是什么?第二段代码中有一个输入错误,您使用
msemplye
而不是
MsEmployee
同意András Kerekes的观点。使用-msemplye/MsEmployee哪个是正确的?请注意SQL注入。永远不要将gui组件直接放在查询中。在您的情况下,应该使用带“?”的PreparedStatement来避免此问题。最好使用“.equals”(jTextField1.getText()),因为您可能最终使用NPEIf。如果使用了“.equals”(jTextField1.getText()),则无法达到使用trim()的目的。如果使用空格字符,它仍将跳过为空输入添加的检查。关于NPE,不,在这种情况下永远不会有NPE。因为如果JTextField中没有键入任何内容,它将返回“”且不为null。但在其他情况下,是的,我同意更好地使用“.equals():)@YogeshRalebhat,我永远不会依赖于
getText
不会返回
null
值的假设。在Java 1.4的某个地方,它改变了,所以它不会(所以它有这样做的历史),而且也不能保证将来不会(但我希望不会)大家好,谢谢你们的回复,哦,是的,我在帖子中输入了错别字,一定是MsEmployee no MsEmployee,我会在我的db MsEmployee中详细解释我的问题,我有3个表,其中包含EmployeeID、EmployeeName、Password,对于该登录表单,我使用EmployeeID和Password,我想要的是,如果用户正确登录,另一个表单将显示,其中包含显示登录的EmployeeName名称的标签,所以我必须做的是像我之前说的那样或者其他什么?有人能给我详细解释一下吗?thanks@MadProgrammer您的建议似乎很重要,因为我们不能依赖于当前时间点返回的“getText”方法。最好是有这样的编程实践,这是未来的证明。谢谢你的澄清。在Java1.4之前,我试图搜索这个方法返回的内容,但找不到任何令人满意的链接。如果您有任何显示“getText”返回null的链接,并且可以与我们共享,这将非常有用。