struts2连接MySQL出现HTTP Status 500 问题

packagefunction;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql... package function;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class insert {
Connection con=null;
Statement st;

public String execute(){
try {
Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/myuser", "root", "root");// 创建数据连接
} catch (Exception e) {
System.out.println("数据库连接失败" + e.getMessage());
}
try {
String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"
+ " VALUES ('Tom3', 32, 'M', 'china','Personnel','3','3000')"; // 插入数据的sql语句
st = (Statement) con.createStatement(); // 创建用于执行静态sql语句的Statement对象
int count = st.executeUpdate(sql); // 执行插入操作的sql语句,并返回插入数据的个数
System.out.println("向staff表中插入 " + count + " 条数据"); //输出插入操作的处理结果
con.close(); //关闭数据库连接
} catch (SQLException e) {
System.out.println("插入数据失败" + e.getMessage());
}
return "success";
}
}

这是我的action函数,单独测试该文件时能正常向数据库内插入数据
但是一旦利用struts2,通过点击index.jsp的提交按钮调用action函数则出错:function.insert.execute(insert.java:23)
即语句: st = (Statement) con.createStatement(); // 创建用于执行静态sql语句的Statement对象
为什么?????
财富值不多 请见谅
我在debug的过程中发现运行到st = (Statement) con.createStatement();时,con是空指针,这是为什么??
展开
 我来答
HHPpeace888
2014-09-30 · TA获得超过565个赞
知道小有建树答主
回答量:529
采纳率:66%
帮助的人:370万
展开全部
你的数据库连接函数写在Action中,这是dao跟数据库交互的部分。Action中不允许出现业务逻辑。
你说的错误在 st = (Statement) con.createStatement(); 搞错了,上面都说了调用action函数则出错:function.insert.execute(insert.java:23),执行插入的时候错了。语法错误,没试过插入会不会返回插入数据的条数,可以去掉试试。excute执行方法不止一个好像。错在int count = st.executeUpdate(sql); 你用debug模式运行下,打断点试试。
追问
那么数据库连接函数该写哪呢?Action函数的内容的限制有哪些?我其实没有一点JavaWeb基础,但是老师要求做一个小实验,要求利用struts2写个能对数据库进行增删查等操作的小程序。
追答
这个很简单啊,你应该知道Action,po,service,dao这些吧。你可以去查一下java的JDBC部分代码怎么写,而dao,service,action就是方法的调用而已啊,action中定义一个service的实体,这样就可以调用service里的方法了,service里面定义一个dao的实体,service中不就可以调用dao中的方法吗,dao再和数据库交互,dao中写的就是jdbc的代码。你要是不会就加我1169095671,百度知道是学不到很具体的东西的。
神域灬小仙
2014-09-29 · 超过19用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:56.2万
展开全部
把错误贴出来看看。。。估计jsp有问题。。。。
追问
message

description The server encountered an internal error () that
prevented it from fulfilling this request.

exception
java.lang.NullPointerException
function.insert.execute(insert.java:23)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿亮年华
2014-09-30 · 超过16用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:25.4万
展开全部
我测试通过了呀,所以应该不是这里的错误了
追问
你是单独测试这个文件么?单独测试时确实没问题,但是利用struts2搭建好框架,设置好struts2.xml和web.xml,利用index.jsp访问数据库的时候就出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆豆小米朵儿
2014-09-30 · TA获得超过236个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:174万
展开全部
是不是数据库没开启服务?
追问
应该不是这个问题,因为我单独测试这个文件的时候没问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式