data[i]=jt[i].getText(); } else JOptionPane.showMessageDialog(null,"PLEASE COMPLTE THE INFORMATION","Warning",JOptionPane.WARNING_MESSAGE); }
return true; }public String str="SELECT name FROM user WHERE name=pzw"; public logon(){ jt[0]=new JTextField(10); jt[1]=new JTextField(10); c=getContentPane(); jnorth=new JPanel(); jcenter=new JPanel(); jsouth=new JPanel(); jleft=new JPanel(); jright=new JPanel(); jtitle=new JLabel("PLEASE ENTER ID AND PASSWORD"); jid=new JLabel("ID"); jpd=new JLabel("PD"); jok=new JButton("OK"); jcancel=new JButton("CANCEL"); GridLayout gl=new GridLayout(2,1,1,1); FlowLayout fl=new FlowLayout(); jnorth.add(jtitle,BorderLayout.NORTH); jleft.setLayout(gl); jright.setLayout(gl); jcenter.setLayout(fl); jleft.add(jid); jleft.add(jpd); jright.add(jt[0]); jright.add(jt[1]); jcenter.add(jleft); jcenter.add(jright); jsouth.add(jok); jsouth.add(jcancel); c.add(jnorth,BorderLayout.NORTH); c.add(jcenter,BorderLayout.CENTER); c.add(jsouth,BorderLayout.SOUTH); jok.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ if(isok()){ Thread runner= new Thread(){ public void run(){
local=new toData(); local.update("INSERT INTO user(name,pd) VALUES('"+data[0]+"','"+data[1]+"')");
JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE);
} }; runner.start(); } } }); jcancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ea){ if(isok()){ Thread runner= new Thread(){ public void run(){ local=new toData(); if(local.isdouble("SELECT name FROM user WHERE name="+data[0])) JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE); else JOptionPane.showMessageDialog(null,"YOU ENTER FALSE","Warning",JOptionPane.WARNING_MESSAGE); } }; runner.start(); } } }); setSize(250,200); setVisible(true); } public static void main(String args[]){ logon app=new logon(); } 这是另一个类 import java.sql.*; public class toData{
java.awt.event.*;import java.awt.*;
import javax.swing.*;
public class logon extends JFrame{
private JLabel jtitle,jid,jpd;
private JButton jok,jcancel;
private JTextField [] jt=new JTextField[2];
private JPanel jnorth,jcenter,jsouth,jleft,jright;
Container c;
private toData local;
private String [] data=new String [2];
public boolean isok(){
for(int i=0;i<data.length;i++){
if(!jt[i].getText().equals("")){
data[i]=jt[i].getText();
}
else
JOptionPane.showMessageDialog(null,"PLEASE COMPLTE THE INFORMATION","Warning",JOptionPane.WARNING_MESSAGE);
}
return true;
}public String str="SELECT name FROM user WHERE name=pzw";
public logon(){
jt[0]=new JTextField(10);
jt[1]=new JTextField(10);
c=getContentPane();
jnorth=new JPanel();
jcenter=new JPanel();
jsouth=new JPanel();
jleft=new JPanel();
jright=new JPanel();
jtitle=new JLabel("PLEASE ENTER ID AND PASSWORD");
jid=new JLabel("ID");
jpd=new JLabel("PD");
jok=new JButton("OK");
jcancel=new JButton("CANCEL");
GridLayout gl=new GridLayout(2,1,1,1);
FlowLayout fl=new FlowLayout();
jnorth.add(jtitle,BorderLayout.NORTH);
jleft.setLayout(gl);
jright.setLayout(gl);
jcenter.setLayout(fl);
jleft.add(jid);
jleft.add(jpd);
jright.add(jt[0]);
jright.add(jt[1]);
jcenter.add(jleft);
jcenter.add(jright);
jsouth.add(jok);
jsouth.add(jcancel);
c.add(jnorth,BorderLayout.NORTH);
c.add(jcenter,BorderLayout.CENTER);
c.add(jsouth,BorderLayout.SOUTH);
jok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(isok()){
Thread runner=
new Thread(){
public void run(){
local=new toData();
local.update("INSERT INTO user(name,pd) VALUES('"+data[0]+"','"+data[1]+"')");
JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE);
}
};
runner.start();
}
}
});
jcancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ea){
if(isok()){
Thread runner=
new Thread(){
public void run(){
local=new toData();
if(local.isdouble("SELECT name FROM user WHERE name="+data[0]))
JOptionPane.showMessageDialog(null,"YOU ENTER SUCCESS","Warning",JOptionPane.WARNING_MESSAGE);
else
JOptionPane.showMessageDialog(null,"YOU ENTER FALSE","Warning",JOptionPane.WARNING_MESSAGE);
}
};
runner.start();
}
}
});
setSize(250,200);
setVisible(true);
}
public static void main(String args[]){
logon app=new logon();
}
这是另一个类
import java.sql.*;
public class toData{
public void update(String query) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ea) {
System.out.println(ea.toString());
}
catch(Exception e) {
System.out.println(e.toString());
}
Connection connection = DriverManager.getConnection("jdbc:odbc:logon");
Statement statement = connection.createStatement();
statement.executeUpdate(query);
statement.close();
connection.close();
}
catch(SQLException SQLe) {
System.out.println(SQLe.toString());
}
}
public boolean isdouble(String query){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ea){
System.out.println(ea.toString());
}
try{
Connection connection=DriverManager.getConnection("jdbc:odbc:user");
Statement statement=connection.createStatement();
ResultSet result=statement.executeQuery(query);
while(result.next()){
return false;
}
result.close();
statement.close();
connection.close();
}
catch(SQLException e){
System.out.println(e.toString());
}
return true;
}
}
是两个类,而不是一个类!
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ea) {
System.out.println(ea.toString());
}
catch (Exception e) {
System.out.println(e.toString());
}
<font color=blue>try {</font>
^
Connection connection = DriverManager.getConnection("jdbc:odbc:logon","username","password");
Statement statement = connection.createStatement();
如果后台打印的错误是非法的用户名/密码,那么你需要调用DriverManager.getConnection("jdbc:odbc:logon","username","password"); username/password是具有增删改查权限的数据库用户。
如果后台打印 “[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序”,那么可能是你的ODBC源配置的不对。我发现你insert用的是logon,而select得时候用的是user,两个不一样。
另外你的类名最好大写。下面的代码最好重构成父类,或者做成UTIL类。避免所有的业务都重写。try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ea){
System.out.println(ea.toString());
}
try{
Connection connection=DriverManager.getConnection("jdbc:odbc:user");
一些建议,仅供参考。错误请指出
SELECT name FROM user WHERE nam=pzw 运行后结果还是显示参数不足,期待是1
现在我又加一个按钮,是删除操作,SQL语句为
DELETE FROM USER WHERE NAME=PZW结果还是参数不足,为什么呀?