java数据库连接成功却显示unknown source

bellalau93 2017-12-17 09:14:42
程序主要部分是数据库连接和查找操作,数据库连接我用另一个工程测试是没问题的,然后查找操作单测试也没问题,不知道问题出在哪,是swing界面有问题吗
报错如下:
java.lang.NullPointerException
at login$1pressjBut1.actionPerformed(login.java:45)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.awt.Rectangle;
import java.sql.Date;
import java.util.*;
public class login extends JFrame {
private static Connection con = null;
JLabel jLab1=new JLabel("手机号:");
JLabel jLab2=new JLabel("密码:");
JLabel jLab3=new JLabel("还没有注册?请点击此处");
JLabel jLab4=new JLabel("用户名不存在!!!");
JLabel jLab5=new JLabel("密码错误!!!");
JScrollPane jScrollP1=new JScrollPane();
JScrollPane jScrollP2=new JScrollPane();
JTextArea jTextA1=new JTextArea();
JTextArea jTextA2=new JTextArea();
JButton jBut1=new JButton("登录");
JButton jBut2=new JButton("注册");
JButton jBut3=new JButton("修改密码");
public Connection getConnection() {
String drivername="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dburl="jdbc:sqlserver://localhost:1433;DatebaseName=account";
String username="sa";
String password="123456";
try {
Class.forName(drivername);
con=DriverManager.getConnection(dburl,username,password);
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}

public login(){

class pressjBut1 implements ActionListener{
public void actionPerformed(ActionEvent e){
String sel="use account select count(*) from user_info where phone_no='"+jTextA1.getText()+"'";
String sel1="use account select password from user_info where phone_no='"+jTextA2.getText()+"'";
try {
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sel);
int count=0;
while(rs.next()) {
count=rs.getInt(1);
}
if(count==0) {
jLab4.setVisible(true);//显示用户名不存在
}
else {
try {
Statement st1=con.createStatement();
ResultSet rs1=st1.executeQuery(sel1);
if(jTextA1.getText()==rs1.getString(sel1)) {
new record();
dispose();
}
else {
jLab5.setVisible(true);//显示密码错误
}
}catch(Exception e2) {
e2.printStackTrace();
}
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

//try {
// Statement
//}
/* 该处需添加代码!!!
* 对输入的jTextA1中的文本在数据库手机号中进行比对,
* 未找到则显示jLab4("用户名不存在!!!") (jLab4.setVisible(true);)
* 找到则对jTextA2中的文本进行手机号的密码进行匹配,
* 成功打开下一个记账窗口并关闭本窗口 (new 记账();dispose();)
* 失败则显示jLab5("密码错误!!!") (jLab5.setVisible(true);)
*/
}
}

class pressjBut2 implements ActionListener{
public void actionPerformed(ActionEvent e){
new register();//打开注册窗口
}
}

class pressjBut3 implements ActionListener{
public void actionPerformed(ActionEvent e){
new update();//打开修改密码窗口
}
}

getContentPane().setLayout(null);
jLab1.setBounds(10, 30, 60, 20);
jLab2.setBounds(10, 70, 60, 20);
jLab3.setBounds(60, 100, 165, 20);
jLab4.setBounds(60, 5, 90, 20);
jLab5.setBounds(60, 5, 70, 20);
jLab4.setForeground(Color.red);
jLab5.setForeground(Color.red);
jScrollP1.setBounds(60, 25, 210, 30);
jScrollP2.setBounds(60, 65, 210, 30);
jScrollP1.getViewport().add(jTextA1);
jScrollP2.getViewport().add(jTextA2);
jBut1.setBounds(60, 130, 107, 40);
jBut2.setBounds(210, 95, 60, 30);
jBut3.setBounds(173, 130, 97, 40);
jBut1.addActionListener(new pressjBut1());
jBut2.addActionListener(new pressjBut2());
jBut3.addActionListener(new pressjBut3());
getContentPane().add(jLab1);
getContentPane().add(jLab2);
getContentPane().add(jLab3);
getContentPane().add(jLab4);
getContentPane().add(jLab5);
jLab4.setVisible(false);
jLab5.setVisible(false);
getContentPane().add(jBut1);
getContentPane().add(jBut2);
getContentPane().add(jBut3);
getContentPane().add(jScrollP1);
getContentPane().add(jScrollP2);
setTitle("登录");
setLocation(800, 400);
setSize(295, 215);
setVisible(true);

class loginwindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e){
System.exit(-1);//关闭程序
}
}
}
public static void main(String[] args) {
new login();
}

}
...全文
2067 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2017-12-18
  • 打赏
  • 举报
回复
空指针 Statement st=con.createStatement(); 这里的con可能还是null
computerclass 2017-12-17
  • 打赏
  • 举报
回复
感觉写的不太规范呀,关闭数据库相关的语句和打开数据库的语句最好是保持一致

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧