本人是菜鸟,刚刚学JAVA,求老手 修改指导!!!!Frame f2 = new Frame("信息查询窗口");
f2.setVisible(true);f2.setSize(400,200);
f2.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}});
f2.setLayout(new GridLayout(1, 3));
Panel p6= new Panel();
Label label0 = new Label("请输入需要查询的图书编号 ");
final TextField usename = new TextField(5);
p6.add(label0);
p6.add(usename);
Button submit3 = new Button(" 确定 ");
p6.add(submit3);
f2.add(p6);
submit3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String xx=usename.getText();
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String command = "select * from book where bno=xx";
ResultSet rs = stmt.executeQuery(command);
while(rs.next())
{
String x1=rs.getString(1);
String x2= rs.getString(2);
String x3=rs.getString(3);
String x4= rs.getString(4);
float x5=rs.getFloat(5);
String x6=rs.getString(6);
System.out.print(" " + x1 + " ");
System.out.print(" " + x2 + " ");
System.out.print(" " + x3 + " ");
System.out.print(" " + x4 + " ");
System.out.print(" " + x5 + " ");
System.out.print(" " + x6 + " ");
dispose() ;
Frame f1 = new Frame("信息查询完成");
f1.setVisible(true);f1.setSize(400,200);
f1.setVisible(true);
f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
JTable table;
Object a[][] = { {x1,x2,x3,x4,x5,x6} };
Object name[] = { "图书编号", "书名" , "分类名" , "出版社" ,"价格" ,"作者"};
TableModel model = new DefaultTableModel(a, name);
table = new JTable(model);
f1.add(table);conn.close();}}
catch(Exception a) {
a.printStackTrace();
}
}
}); 异常很多:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 1。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at package1.LoginWindow$1$2$2.actionPerformed(LoginWindiw.java:120)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
f2.setVisible(true);f2.setSize(400,200);
f2.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}});
f2.setLayout(new GridLayout(1, 3));
Panel p6= new Panel();
Label label0 = new Label("请输入需要查询的图书编号 ");
final TextField usename = new TextField(5);
p6.add(label0);
p6.add(usename);
Button submit3 = new Button(" 确定 ");
p6.add(submit3);
f2.add(p6);
submit3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String xx=usename.getText();
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String command = "select * from book where bno=xx";
ResultSet rs = stmt.executeQuery(command);
while(rs.next())
{
String x1=rs.getString(1);
String x2= rs.getString(2);
String x3=rs.getString(3);
String x4= rs.getString(4);
float x5=rs.getFloat(5);
String x6=rs.getString(6);
System.out.print(" " + x1 + " ");
System.out.print(" " + x2 + " ");
System.out.print(" " + x3 + " ");
System.out.print(" " + x4 + " ");
System.out.print(" " + x5 + " ");
System.out.print(" " + x6 + " ");
dispose() ;
Frame f1 = new Frame("信息查询完成");
f1.setVisible(true);f1.setSize(400,200);
f1.setVisible(true);
f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
JTable table;
Object a[][] = { {x1,x2,x3,x4,x5,x6} };
Object name[] = { "图书编号", "书名" , "分类名" , "出版社" ,"价格" ,"作者"};
TableModel model = new DefaultTableModel(a, name);
table = new JTable(model);
f1.add(table);conn.close();}}
catch(Exception a) {
a.printStackTrace();
}
}
}); 异常很多:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 1。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at package1.LoginWindow$1$2$2.actionPerformed(LoginWindiw.java:120)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:/DataBase/books.mdb"; //注意修改路径,最好用java反射或取路径,不能以绝对路径出现。
Connection con=DriverManager.getConnection(url) ;
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from book");
while(rst.next())
{
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
随便百度的
f2.setVisible(true);f2.setSize(400,200);
f2.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
System.exit(0);
}}); f2.setLayout(new GridLayout(1, 3));
Panel p6= new Panel();
Label label0 = new Label("请输入需要查询的图书编号 ");
final TextField usename = new TextField(5);
p6.add(label0);
p6.add(usename);
Button submit3 = new Button(" 确定 ");
p6.add(submit3);
f2.add(p6);
submit3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String xx=usename.getText();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb"; //注意修改路径,最好用java反射或取路径,不能以绝对路径出现。
Connection con=DriverManager.getConnection(url) ;
Statement stmt=con.createStatement();
String command = "select * from book where bno=xx";
ResultSet rs = stmt.executeQuery(command);
while(rs.next())
{
String x1=rs.getString(1);
String x2= rs.getString(2);
String x3=rs.getString(3);
String x4= rs.getString(4);
float x5=rs.getFloat(5);
String x6=rs.getString(6);
System.out.print(" " + x1 + " ");
System.out.print(" " + x2 + " ");
System.out.print(" " + x3 + " ");
System.out.print(" " + x4 + " ");
System.out.print(" " + x5 + " ");
System.out.print(" " + x6 + " ");
dispose() ;
Frame f1 = new Frame("信息查询完成");
f1.setVisible(true);f1.setSize(400,200);
f1.setVisible(true);
f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
JTable table;
Object a[][] = { {x1,x2,x3,x4,x5,x6} };
Object name[] = { "图书编号", "书名" , "分类名" , "出版社" ,"价格" ,"作者"};
TableModel model = new DefaultTableModel(a, name);
table = new JTable(model);
f1.add(table);rs.close();
stmt.close();
con.close();}}
catch(Exception a) {
a.printStackTrace();
}
}
}); 异常:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 2。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at package1.LoginWindow$1$2$2.actionPerformed(LoginWindiw.java:121)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
但是还是没有相应的X1 X2等的输出
额,我的数据库已经放下项目的根目录下了,应该就可以是相对路径吧,就算改了那个绝对路径,但是不行。以下是我修改后的代码 Frame f2 = new Frame("信息查询窗口");
f2.setVisible(true);f2.setSize(400,200);
f2.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
System.exit(0);
}}); f2.setLayout(new GridLayout(1, 3));
Panel p6= new Panel(); Label label0 = new Label("请输入需要查询的图书编号 ");
final TextField usename = new TextField(5);
p6.add(label0);
p6.add(usename);
Button submit3 = new Button(" 确定 ");
p6.add(submit3);
f2.add(p6);
submit3.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{String xx=usename.getText();try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=book.mdb"; //注意修改路径,最好用java反射或取路径,不能以绝对路径出现。
Connection con=DriverManager.getConnection(url) ;
Statement stmt=con.createStatement();
String command = "select * from book where bno=xx";
ResultSet rs = stmt.executeQuery(command);while(rs.next())
{
String x1=rs.getString(1);
String x2= rs.getString(2);
String x3=rs.getString(3);
String x4= rs.getString(4);
float x5=rs.getFloat(5);
String x6=rs.getString(6);System.out.print(" " + x1 + " ");
System.out.print(" " + x2 + " ");
System.out.print(" " + x3 + " ");
System.out.print(" " + x4 + " ");
System.out.print(" " + x5 + " ");
System.out.print(" " + x6 + " ");
dispose() ;
Frame f1 = new Frame("信息查询完成");
f1.setVisible(true);f1.setSize(400,200);
f1.setVisible(true);
f1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
JTable table;Object a[][] = { {x1,x2,x3,x4,x5,x6} };
Object name[] = { "图书编号", "书名" , "分类名" , "出版社" ,"价格" ,"作者"};
TableModel model = new DefaultTableModel(a, name);
table = new JTable(model);f1.add(table);rs.close();
stmt.close();
con.close();}}
catch(Exception a) {
a.printStackTrace();
}
}
}); 异常:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 2。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at package1.LoginWindow$1$2$2.actionPerformed(LoginWindiw.java:121)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)