我正在尝试创建一个 Java Web 应用程序。在该应用程序中,我创建了一个 servlet 来从 MS-Access 数据库检索数据。我在实验室里这样做了很多次,但现在我不能了。我不知道是什么原因。这是我的 processRequest 方法:
处理请求
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, ClassNotFoundException, SQLException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String des=request.getParameter("desc");
Class.forName("sun.jdbc.odbc.JdbcOdbcConnection");
Connection con=DriverManager.getConnection("jdbc:odbc:wsds","","");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from Table1 where wsdesc="+des);
while(rs.next())
{
String description=rs.getString("wsdesc");
String url=rs.getString("url");
out.println(description);
out.println(url);
}
} finally {
out.close();
}
}
我使用 Netbeans 7.0.1 IDE。我创建了一个数据源 wsds。我检查表列名称是否正确。任何人都可以帮助我吗?
最佳答案
改变
ResultSet rs=st.executeQuery("select * from Table1 where wsdesc="+des);
到
ResultSet rs=st.executeQuery("select * from Table1 where wsdesc='"+des+"'");
Varchar 数据类型应用 '
'
使用PreparedStatement代替Statement
PreparedStatement pt=con.prepareStatement("select * from Table1 where wsdesc=?");
pt.setString(1,desc);
ResultSet rs=pt.executeQuery();
关于java - 无法从 Access 数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427739/