web.xml struts.xml设置均无问题
经过测试发现问题出在test.java文件中query()函数的 st = (Statement) conn.createStatement();
但是单独测试test.java文件没问题出现,求解
test文件:
package operation;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
static Connection conn;
static Statement st;
public static Connection getConnection() {
Connection con = null; //创建用于连接数据库的Connection对象
try {
Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/bookdb", "root", "root");// 创建数据连接
} catch (Exception e) {
System.out.println("数据库连接失败" + e.getMessage());
}
return con; //返回所建立的数据库连接
}
public static String query(){
conn = getConnection(); //同样先要获取连接,即连接到数据库
try {
String sql = "select * from author"; // 查询数据的sql语句
st = (Statement) conn.createStatement(); //创建用于执行静态sql语句的Statement对象,st属局部变量
ResultSet rs = st.executeQuery(sql); //执行sql查询语句,返回查询数据的结果集
System.out.println("最后的查询结果为:");
while (rs.next()) { // 判断是否还有下一个数据
// 根据字段名获取相应的值
String name = rs.getString("Name");
int age = rs.getInt("Age");
String country = rs.getString("Country");
//输出查到的记录的各个字段的值
System.out.println(name + " " + age + " " + country );
}
conn.close(); //关闭数据库连接
} catch (SQLException e) {
System.out.println("查询数据失败");
}
return "QResult";
}
}
错误信息:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
operation.test.query(test.java:26)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)