我想在登录界面单击登录按钮就进入主界面,请问这个该怎么实现?
我作了两个界面,在登录界单击登录按钮,出现了下列错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
我用的是ACCESS2007,部分代码为:
public class SqlIncapsulation{
ResultSet rs=null;
Connection con=null;
Statement sql=null;
public void SqlIncapsulation(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con=DriverManager.getConnection("jdbc:odbc:sun");
sql=con.createStatement();
}catch(SQLException e){
e.printStackTrace();
}
}
//查询指定的用户名和用户密码
public ResultSet userQuery(String s){
try{
//System.out.println("执行到了这里");
rs=sql.executeQuery(s);
return rs;
}catch(SQLException e){
e.printStackTrace();
return null;
}
}
}S为:s="select * from usertable where username = '"+textStr+"' and userpassword = '"+passwordStr+"'";
textStr为从文本框获得的用户名
passwordStr为从文本框获得的密码
我作了两个界面,在登录界单击登录按钮,出现了下列错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
我用的是ACCESS2007,部分代码为:
public class SqlIncapsulation{
ResultSet rs=null;
Connection con=null;
Statement sql=null;
public void SqlIncapsulation(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con=DriverManager.getConnection("jdbc:odbc:sun");
sql=con.createStatement();
}catch(SQLException e){
e.printStackTrace();
}
}
//查询指定的用户名和用户密码
public ResultSet userQuery(String s){
try{
//System.out.println("执行到了这里");
rs=sql.executeQuery(s);
return rs;
}catch(SQLException e){
e.printStackTrace();
return null;
}
}
}S为:s="select * from usertable where username = '"+textStr+"' and userpassword = '"+passwordStr+"'";
textStr为从文本框获得的用户名
passwordStr为从文本框获得的密码
不明白啊!!!!
ResultSet rs=sql.executeQuery("select * from usertable");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}这个能输出结果,数据库应该是连好了的吧
rs=sql.executeQuery(s);
con=DriverManager.getConnection("jdbc:odbc:sun"); 你的数据库名字叫sun?我猜不是吧,去odbc数据源,那里看看。另外数据库应该有用户名和密码的,可以这样连接
Connection conn= DriverManager.getConnection(url,user,password);
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] SELECT 子句中包
含一个保留字、拼写错误或丢失的参数,或标点符号不正确。
这是个什么错误
有ResultSet的引用rs,rs.first();该方法的调用总是抛出异常:java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY后来我就没用这个方法rs.next()也同样能指到第一行吧,但是单击按钮事件总是抛出Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException这是部份代码:
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb2){
this.dispose();
System.exit(0);
}
if(e.getSource()==jb1){
String textStr=jtf1.getText().trim();
char[] password=jpf1.getPassword();
String passwordStr=new String(password);
if(textStr.equals("")){
JOptionPane.showMessageDialog(null,"用户名不能为空");
return;
}
if(passwordStr.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空");
return;
}
boolean isExist=false;
String s="select * from usertable where username = '"+textStr+"' and userpassword = '"+passwordStr+"'";
ResultSet rs=si.userQuery(s);
try{
while(rs.next()){
isExist=true
}
}catch(SQLException el){
System.out.println(el.toString());
}
if(!isExist){
JOptionPane.showMessageDialog(null,"用户名或密码不正确");
return;
}
else{
mainFrame.setVisible(true);
si.closeConnection();
this.dispose();
}
}
}
mainFrame是另一个界对像的引用.
敬请大侠们指出错误,小弟不胜感激