当前位置: 技术问答>java相关
关于PreparedStatement在事件处理中的疑问????(新手的Jdbc数据库编程)
来源: 互联网 发布时间:2014-12-25
本文导语: 我在程序中声明了一个全程PreparedStatement对象的实例,但它在事件响应的处理中无法使用。怪!怪!怪!请大虾帮忙看看,万分感谢!!! 程序流程: 在初始化时生成一个PreparedStatement对象的实例prepare,其中有一个参...
我在程序中声明了一个全程PreparedStatement对象的实例,但它在事件响应的处理中无法使用。怪!怪!怪!请大虾帮忙看看,万分感谢!!!
程序流程:
在初始化时生成一个PreparedStatement对象的实例prepare,其中有一个参数index。
通过一个theSelect按钮产生事件,由selectdb()响应,但在selectdb()中使用
prepare就产生一个异常。
代码如下:(代码可用 jdk 或 jbuild3 编译运行)
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class test extends Frame implements ActionListener
{
TextField theIndex =new TextField("ok");
Panel panel =new Panel();
Button theSelect =new Button("select");
Connection theConnection;
PreparedStatement prepare;
public void init()
{
add("Center",panel);
panel.setLayout(new GridLayout());
panel.add("West",new Label("con:",Label.RIGHT));
panel.add("Center",theIndex);
panel.add("East",theSelect);
theSelect.addActionListener(this);
pack();
show();
openConn();
}
public static void main(String[] args)
{
test T=new test();
T.init();
}
public void openConn()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection theConnection=DriverManager.getConnection("jdbc:odbc:datasource","user","password");
String sql="select * from datatable where index=?";
PreparedStatement prepare=theConnection.prepareStatement(sql);
}
catch(SQLException e)
{theIndex.setText("error"); }
catch(Exception e)
{theIndex.setText("error"); }
}
public void actionPerformed(ActionEvent evt)
{
try
{
Object object=evt.getSource();
if(object==theSelect) selectdb();
}
catch(Exception e)
{ }
}
public void selectdb()
{
try
{
prepare.setString(1,theIndex.getText());
ResultSet theResultSet=prepare.executeQuery();
}
catch(Exception e)
{ theIndex.setText("error");}
}
}
程序流程:
在初始化时生成一个PreparedStatement对象的实例prepare,其中有一个参数index。
通过一个theSelect按钮产生事件,由selectdb()响应,但在selectdb()中使用
prepare就产生一个异常。
代码如下:(代码可用 jdk 或 jbuild3 编译运行)
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class test extends Frame implements ActionListener
{
TextField theIndex =new TextField("ok");
Panel panel =new Panel();
Button theSelect =new Button("select");
Connection theConnection;
PreparedStatement prepare;
public void init()
{
add("Center",panel);
panel.setLayout(new GridLayout());
panel.add("West",new Label("con:",Label.RIGHT));
panel.add("Center",theIndex);
panel.add("East",theSelect);
theSelect.addActionListener(this);
pack();
show();
openConn();
}
public static void main(String[] args)
{
test T=new test();
T.init();
}
public void openConn()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection theConnection=DriverManager.getConnection("jdbc:odbc:datasource","user","password");
String sql="select * from datatable where index=?";
PreparedStatement prepare=theConnection.prepareStatement(sql);
}
catch(SQLException e)
{theIndex.setText("error"); }
catch(Exception e)
{theIndex.setText("error"); }
}
public void actionPerformed(ActionEvent evt)
{
try
{
Object object=evt.getSource();
if(object==theSelect) selectdb();
}
catch(Exception e)
{ }
}
public void selectdb()
{
try
{
prepare.setString(1,theIndex.getText());
ResultSet theResultSet=prepare.executeQuery();
}
catch(Exception e)
{ theIndex.setText("error");}
}
}
|
什么异常,是不是类型不匹配?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。