永发信息网

哪个JAVA高手帮我改下程序

答案:2  悬赏:10  手机版
解决时间 2021-04-30 09:03
  • 提问者网友:原来太熟悉了会陌生
  • 2021-04-30 04:24

package mianshi;

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;

public class CK_dl extends JFrame{
 String wbk;
 String sfz;
 Connection con;
 Statement sql;
 ResultSet res;
 public Connection getConnection() {
  try{
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;Databasename=mianshixt", "sa","123456");
   System.out.println("OK");
   sql=con.createStatement();
   res=sql.executeQuery("select*from dl_Sfz");
   while (res.next()) {
    sfz=res.getString("Sfz");
    System.out.println(sfz);
   }
  }catch(Exception e){
   e.getStackTrace();
  }
  
  return con;
 }
  public  CK_dl(){
  JFrame jf=new JFrame();
  Container con=jf.getContentPane();
  final JTextField jt=new JTextField("输入");
  JButton jb=new JButton("按扭");
  jf.setSize(500, 500);
  con.add(jt,BorderLayout.NORTH);
  con.add(jb,BorderLayout.SOUTH);
  jb.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    wbk=jt.getText();
    if(wbk.matches(sfz)){
     JOptionPane.showMessageDialog(null, "通过验证");
    }else{
     JOptionPane.showConfirmDialog(null, "验证失败");
    }
   }
  });

  jf.setVisible(true);
  jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  }
  public static void main(String[] args) {
   CK_dl C=new CK_dl();
   C.getConnection();
  }
}
不知道怎么判断输入信息是否在数据库中

if(wbk.matches(sfz)){
这个是肯定不行的,谁帮我改下

最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-04-30 05:16
你在读取sfz时候永远读取的是最后一个while (res.next()) {
    sfz=res.getString("Sfz");
    System.out.println(sfz);
}解决方法一:你可以用一个list0,从数据库取的时候,把sfz全部装起来,然后再FOR循环匹配解决方法二:把你的SQL语句带上参数,即 你输入的sfz,到数据库里面查询有没有,返回bool类型
全部回答
  • 1楼网友:不如潦草
  • 2021-04-30 06:38

您应该在校验时候查询一下当前数据库内是否存在这条记录, 例如我写的这个方法供您参考

 public boolean checkData(String info) {    try{     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");     Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;Databasename=mianshixt", "sa","123456");     PreparedStatement  sql=con.PreparedStatement  ("select*from dl_Sfz where sfz=?");     sql.setString(1,info);     ResultSet  res=sql.executeQuery();     if(res.next())return false;     return true;    }    catch(Exception e){     e.getStackTrace();    }       return false;   }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯