免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1573 | 回复: 0
打印 上一主题 下一主题

关于java数据库问题?(在线等) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-29 16:31 |只看该作者 |倒序浏览
做一个用户密码验证,但一点击"确定"按钮就会有错误提示,不知道怎么错的,改了数据库驱动也不行.错误提示如下:
getResult-------java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]在关键字 'user' 附近有语法错误。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at login$3.actionPerformed(login.java:69)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:25
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:548
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:177
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)



这是界面代码:
import sql.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class login extends JFrame{
ResultSet rs;
private DBManager db = new DBManager();

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
//BorderLayout borderLayout1 = new BorderLayout();
Container con=getContentPane();
//getContentPane().setLayout(null);
JLabel jLabel2 = new JLabel();
JButton jButtonCancel = new JButton();
JLabel jLabel1 = new JLabel();
JTextField jTextFieldusername = new JTextField();
JButton jButtonOK = new JButton();
JPasswordField jPasswordold = new JPasswordField();

public login() {

setSize(260,150);
setTitle("用户登录";
setVisible(true);
setResizable(false);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);}});

con.add(panel1,BorderLayout.NORTH);
con.add(panel2,BorderLayout.CENTER);
con.add(panel3,BorderLayout.SOUTH);
panel1.add(jLabel1);
panel1.add(jTextFieldusername);
panel2.add(jLabel2);
panel2.add(jPasswordold);
panel3.add(jButtonOK);
panel3.add(jButtonCancel);
jLabel2.setFont(new java.awt.Font("Dialog",0,16));
jLabel2.setText("密码";
jButtonCancel.setFont(new java.awt.Font("Dialog",0,16));
jButtonCancel.setText("取消";
jButtonCancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){dispose();}});
jLabel1.setFont(new java.awt.Font("Dialog",0,16));
jLabel1.setText("用户名";
jTextFieldusername.setFont(new java.awt.Font("Dialog",0,16));
jTextFieldusername.setText("";
jTextFieldusername.setSize(30,20);
jPasswordold.setText("";
jPasswordold.setSize(30,20);
jButtonOK.setFont(new java.awt.Font("Dialog",0,16));
jButtonOK.setText("确定";
jButtonOK.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jTextFieldusername.getText().trim()==""{JOptionPane.showMessageDialog(null,"用户名不可为空!";return;}
if(jPasswordold.getText().trim()==""{JOptionPane.showMessageDialog(null,"密码不可为空!");return;}
String strSQL;
strSQL = "select * from user where username='" + jTextFieldusername.getText().trim() + "' and password='" + jPasswordold.getText().trim() + "'";
rs=db.getResult(strSQL);
//if(rs.getString("username")!=jTextFieldusername.getText()||rs.getString("password")!=jPasswordold.getText())
boolean isexist = false;
try{
isexist=rs.first();
}catch(SQLException ex1){}
if(!isexist){JOptionPane.showMessageDialog(null,"用户名不存在,或密码不正确!");/*login.setEnable(false,false);*/}
else{try{
rs.first();
dispose();
}catch(SQLException ex){}
}}});
}//login的构造方法

public static void main(String args[]){
login f = new login();
f.show();
}

}//login.class

这是连接数据库代码:
package sql;
import java.sql.*;

public class DBManager {

ResultSet rs;
String strurl="jdbcdbc:myRecorder";
public DBManager(){
}

public ResultSet getResult(String sql){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(strurl);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
return rs;
}catch(Exception e){
System.out.println("getResult-------"+e.toString());
return null;
}
}
public boolean executeSql(String sql){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(strurl);
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
conn.commit();
return true;
}catch(Exception e){
System.out.println("executeSql-------"+e.toString());
return false;
}
}


}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP