我对 Java 编程很陌生,目前正在使用 MVC 架构开发我的第一个 Web 应用程序。但是我的应用程序遇到了很多问题,我不知道为什么会出现这些问题。例如,我的 JSP 页面中有以下代码:
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
String QueryString="";
String stuid="";
try {
QueryString = "SELECT Student_ID, Student_F_Name, Student_L_Name, Student_NIC, Student_Address, Student_DOB, Student_Email, Student_Gender, Course_Name, Batch_Name, Student_username, Student_password FROM Student WHERE Student_ID = ?";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
connection = DriverManager.getConnection("Jdbc:Odbc:UniversityDSN");
statement=connection.prepareStatement(QueryString);
stuid = session.getAttribute("studentid").toString();
statement.setString(1, stuid);
rs = statement.executeQuery();
有时此代码可以完美运行,但一段时间后,此代码停止工作,并提供如下错误:
INFO: SQLException:[Microsoft][ODBC Driver Manager] 无效的字符串或缓冲区长度
但是如果我将上面的代码修改如下:
String QueryString = "SELECT Student_ID, Student_F_Name, Student_L_Name, Student_NIC, Student_Address, Student_DOB, Student_Email, Student_Gender, Course_Name, Batch_Name, Student_username, Student_password FROM Student WHERE Student_ID = ?";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection connection = DriverManager.getConnection("Jdbc:Odbc:UniversityDSN");
PreparedStatement statement=connection.prepareStatement(QueryString);
String stuid = session.getAttribute("studentid").toString();
statement.setString(1, stuid);
ResultSet rs = statement.executeQuery();
它将再次开始工作。但是一段时间后,这段代码将再次停止工作,给出相同的异常,我必须像以前一样修改它。但是在这两个时间里,如果我调试它,代码就可以完美地工作。这很烦人,因为我不得不浪费大量时间来修改我的代码,而且它发生在 JSP 页面、Servlet 或我使用的 Bean 类中。如果有人能建议我可能做错了什么以及如何避免这个问题,我将不胜感激?