异常如下 Exception occurred during event dispatching: java.lang.NullPointerException at AddRowFrame.button1_actionPerformed(AddRowFrame.java:156) at AddRowFrame$1.actionPerformed(AddRowFrame.java:52) at java.awt.Button.processActionEvent(Button.java:329) at java.awt.Button.processEvent(Button.java:302) at java.awt.Component.dispatchEventImpl(Component.java:2595) at java.awt.Component.dispatchEvent(Component.java:2499) at java.awt.EventQueue.dispatchEvent(EventQueue.java:319) at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:10 3) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)这是怎么回事
改为
String qry2="INSERT INTO publishers(姓名,年龄,地址,密码) VALUES('"+t1+"','"+t2+"','"+t3+"','"+t4+"')";
String qry1="Select 姓名='"+t1+"'年龄'"+t2+"'地址='"+t3+"'密码='"+t4+"'from publishers";
改为
String qry1="Select * from publishers where 姓名='"+t1+"'年龄'"+t2+"'地址='"+t3+"'密码='"+t4+"'";
String qry1="Select * from publishers where 姓名='"+t1+"' and 年龄='"+t2+"' and 地址='"+t3+"' and 密码='"+t4+"'";
queryDB(qry2);在queryDB()应该是执行stmt.executeUpdate()啊。
你执行的是executeQuery()方法。
主要的还是看sql语句是Insert 还是 Select
如果SQL语句肯定没有问题,就只能一步一步调试了
而executeUpdate适用于update,insert,delete等你那个程序本身应该没什么问题
String qry1="Select 姓名 地址 密码 from publishers where 姓名=? 地址=? 密码=?";
//建立PreparedStatement
PreparedStatement qry1QueryStat=connection.prepareStatement(qry1);qry1QueryStat.setString(1,t1);qry1QueryStat.setString(2,t2);
qry1QueryStat.setString(3,t3)//1,2,3是的几个宿主变量ResultSet rs=qry1QueryStat.executeQuery();//得到结果
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import java.sql.*;public class AddRowFrame extends JFrame {
Connection con;
String url = "jdbc:odbc:Xu";
ResultSet rs;
private JPanel contentPane;
private TextField textField1 = new TextField();
private TextField textField2 = new TextField();
private TextField textField3 = new TextField();
private TextField textField4 = new TextField();
private Label label1 = new Label();
private Label label2 = new Label();
private Label label3 = new Label();
private Label label4 = new Label();
private Button button1 = new Button();
private Button button2 = new Button();
FlowLayout lay=new FlowLayout();
//Construct the frame
public AddRowFrame() { DBConnect(url);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
} }
//Component initialization
private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(AddRowFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(lay);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
label1.setText("姓名");
label2.setText("年龄");
label3.setText("地址");
label4.setText("密码");
button1.setLabel("添 加");
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
button2.setLabel("取 消");
button2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button2_actionPerformed(e);
}
});
textField1.setText(" ");
textField2.setText(" ");
textField3.setText(" ");
textField4.setText(" ");
contentPane.add(textField3,new FlowLayout());
contentPane.add(textField2 );
contentPane.add(textField1 );
contentPane.add(textField4 );
contentPane.add(label1 );
contentPane.add(label2);
contentPane.add(label3);
contentPane.add(label4);
contentPane.add(button1);
contentPane.add(button2);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
} void button2_actionPerformed(ActionEvent e) {
super.setVisible(false);
}
void DBConnect(String url){
try {
String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
System.out.println("driver:"+driver);
con =DriverManager.getConnection (url, "", "");
System.out.println("CONNECTED TO ---> "+ url);
}catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} void DBClose(){
try{
con.close();
}catch(SQLException e)
{
}
}
ResultSet queryDB(String qry){
try{
ResultSet rs=null;
Statement stmt= con.createStatement ();
//rs= stmt.executeUpdate(qry);
rs= stmt.executeQuery(qry);
//System.out.println("EXECUTED QUERY ---> " + qry);
}catch(SQLException e2){
}
return rs;
} int queryDB2(String qry){
int count=0;
try{
Statement stmt= con.createStatement ();
count= stmt.executeUpdate(qry);
//System.out.println("EXECUTED QUERY ---> " + qry);
}catch(SQLException e2){
}
return count;
} void button1_actionPerformed(ActionEvent e) {
/*String t1=textField1.getText().trim();
String t2=textField2.getText().trim();
String t3=textField3.getText().trim();
String t4=textField4.getText().trim();*/
String t1=textField1.getText().trim();
String t2=textField2.getText().trim();
String t3=textField3.getText().trim();
String t4=textField4.getText().trim(); if(t1.equals("")||t2.equals("")||t3.equals("")||t4.equals(""))
{
System.out.println("错误");
//ti.setVisible(true);
}
else
{
try
{
//String qry1="Select 姓名='"+t1+"'年龄'"+t2+"'地址='"+t3+"'密码='"+t4+"'from publishers";
ResultSet qry1=queryDB("Select * from publishers where 姓名='"+t1+"' and 年龄='"+t2+"' and 地址='"+t3+"' and 密码='"+t4+"'");
//queryDB(qry1);
if(qry1.next())
{
textField1.setText("in");
//TiSh ti=new TiSh();
}
else
{
String qry2="INSERT INTO publishers(姓名,年龄,地址,密码) VALUES('"+t1+"','"+t2+"','"+t3+"','"+t4+"')";
queryDB2(qry2);
}
}
catch(SQLException e1)
{ }
//"SELECT * FROM Publishers where 姓名='"+name+
// "' and 密码='"+passwd+ "'");
}
}
public static void main(String[] args)
{
AddRowFrame frame=new AddRowFrame();
frame.setSize(600,600);
frame.setVisible(true);
}
}
java.lang.NullPointerException
at AddRowFrame.button1_actionPerformed(AddRowFrame.java:156)
at AddRowFrame$1.actionPerformed(AddRowFrame.java:52)
at java.awt.Button.processActionEvent(Button.java:329)
at java.awt.Button.processEvent(Button.java:302)
at java.awt.Component.dispatchEventImpl(Component.java:2595)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:10
3)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)这是怎么回事
就是这个
if(qry1.next())
{
System.out.println("记录重复请重新输入"); //TiSh ti=new TiSh();
}//查询语句 ?是查询语句的宿主变量
String qry1="Select 姓名 地址 密码 from publishers where 姓名=? 地址=? 密码=?";
//建立PreparedStatement
PreparedStatement qry1QueryStat=connection.prepareStatement(qry1);qry1QueryStat.setString(1,t1);qry1QueryStat.setString(2,t2);
qry1QueryStat.setString(3,t3)//1,2,3是的几个宿主变量ResultSet rs=qry1QueryStat.executeQuery();//得到结果
else
{
String qry2="INSERT INTO publishers(姓名,年龄,地址,密码) VALUES('"+t1+"','"+t2+"','"+t3+"','"+t4+"')";
queryDB2(qry2);
}
}
有exception?还是没exception但得不到你想要的?
如果是后者,多半是sql的问题
建议你将所有要执行的sql先println出来,在数据库里执行一变,看行不行。
如果是SQL server,应该就已经解决问题了,但如果是Oracle,可能出现这些问题!
就他妈知道倒分!有个屁用!bruce1981(过客)
Bruce_1981(许真)
xuzhen1980(为中国软件振兴而努力)都是那个煞笔"许真",别不承认!
看下面的贴子,就知道他有没有倒分!
http://expert.csdn.net/Expert/topic/1483/1483350.xml?temp=1.162291E-05