java做的小管理系统 登录模块的问题

初学者 登录界面代码如下
public class LibSys extends JFrame implements ActionListener{
Label Inform,Login,Key;
Button bEnter,bLogin;
TextField textLogin,textKey;
String driver,url;
public LibSys()
{
界面代码;
driver= "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://B625486FFCBB41F:1433;databaseName=student";
try{
System.out.println("连接数据库");
Class.forName(driver);
System.out.println("数据库连接成功");
}catch(java.lang.ClassNotFoundException e){
System.out.println("ForName:"+e.getMessage());
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bEnter){
String admin="admin";
String log =textLogin.getText();
String key =textKey.getText();
boolean flag=false;
try{
Connection con = DriverManager.getConnection(url,"chen","sa");
Statement sm=con.createStatement();
ResultSet rs=sm.executeQuery("select * from login");
while(rs.next()){
if(log.equals(rs.getString("user"))&&key.equals((rs.getString("psw"))))
{
System.out.println("登录成功!");
System.out.println("进入管理界面");
}
}
}catch(SQLException e1){
System.out.println("SQLException:"+e1.getMessage());
}
}
if(e.getSource()==bLogin)
{
System.out.println("进入注册页面");
}
}
public static void main(String[] args){
new LibSys();
}
}
不能正常登陆
代码和数据库连接方面都没问题 关键问题估计在这里:
String log =textLogin.getText();//获取账号
String key =textKey.getText();//获取密码
try{
Connection con = DriverManager.getConnection(url,"chen","sa");//登录自己的数据库
Statement sm=con.createStatement();
ResultSet rs=sm.executeQuery("select * from login"); //login为用户的信息表
while(rs.next()){
if(log.equals(rs.getString("user"))&&key.equals((rs.getString("psw"))))
{
System.out.println("登录成功!");
System.out.println("进入管理界面");
}
}
login表里面 user 和 psw 数据类型都为 char
会不会是数据类型不匹配问题 请高手赐教

1.你指的不能正常登陆具体是抛出了什么异常?
2.如果你的数据库类型是Char建议你改成Varchar.因为Char类型有可能由于各种原因数据结尾中包含空格;或者在应用层rs.getString("user")时加上Trim方法
有可能是数据库字段里有空格。
3.本人建议你修改登陆部分代码因为就你贴出的代码看影响执行效率.
select psw from login where user=:user
执行后判断RecordCount
if RecordCount==1{
password=rs.getString("psw").Trim();
if password.equals(Key.Trim()){
//正常登陆
}else{
//口令错误
}
}else{
//用户名不存在
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-15
界面做完了吗?
界面中输入内容后,能正确取到吗?
actionPerformed这个事件驱动的方法什么时候被调用?
第2个回答  2009-06-15
char要看你帮它定为几位了,如果是char(4),的话就可能出错了。最好是char(50),这样方便,不会出错。 还有key.equals((rs.getString("psw")))),多了一对括号
第3个回答  2009-06-15
你这也叫初学者,太谦虚了吧~~~~~~,我都没看懂

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网