为什么代码执行到 stmt.executeUpdate(addsql); 就不执行了?

kerelawei 2012-09-09 09:53:07
package week1_hw;

import java.io.IOException;
import java.io.PrintWriter;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.*;
import javax.servlet.http.*;

public class ConnDBA extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";

public void init(ServletConfig config) throws ServletException {
super.init(config);
}

public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>ConnDBA</title></head>");
out.println("<body>");
//Connection conn=null;
// Statement stmt=null;
// ResultSet rs=null;
try {
//装载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//创建连接
Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott",
"tiger");
//创建发送SQL语句的对象
Statement stmt=conn.createStatement();
//对数据库进行操作
String addsql="INSERT INTO emp VALUES (7250,'HELLO','WORlD',101,1990-01-12,0000,123,10)" ;
out.println("<p>1111111.</p>");
stmt.executeUpdate(addsql);
out.println("<p>2222222.</p>");
String querysql="SELECT * FROM emp";
ResultSet rs = stmt.executeQuery(querysql);
//处理操作结果
while(rs.next())
{
out.println(
rs.getInt(1)+" "+ rs.getString(2)+" "+
rs.getString(3)+" "+ rs.getInt(4)+" "+
rs.getDate(5)+" "+ rs.getInt(6)+" "+
rs.getInt(7)+" "+rs.getInt(8)+"<br />");
}

if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}

out.println("<p>The servlet has received a GET. This is the reply.</p>");
out.println("</body></html>");
out.close();
}
}
...全文
378 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
s478853630 2012-09-09
  • 打赏
  • 举报
回复
会不会是线程阻塞或者进程假死,
你关闭tomcat和eclipse重新来一下吧!

3楼的分析也有道理,不仅要加单引号,
如果数据库是日期(date)格式,还要转型:to_date('1990-01-12','yyyy-mm-dd')
xiaoxie_advent 2012-09-09
  • 打赏
  • 举报
回复
addsql有问题,如果是中文系统的话日期应是不能这样直接写的,试试to_date方法
wsyangzuda 2012-09-09
  • 打赏
  • 举报
回复
stmt.executeUpdate(addsql); ---- 这句话出错了,可以推理addsql有问题

也就是这条语句 -- String addsql="INSERT INTO emp VALUES (7250,'HELLO','WORlD',101,1990-01-12,0000,123,10)" ;

经观察,是你的sql语句语法出错了。

7250 ,101,1990-01-12,0000,123,10 这些插入的语句都要加上'' ,和你的'HELLO'这格式一样。
qsong 2012-09-09
  • 打赏
  • 举报
回复
INSERT INTO emp VALUES (7250,'HELLO','WORlD',101,1990-01-12,0000,123,10)

这句应该有问题。
qsong 2012-09-09
  • 打赏
  • 举报
回复
stmt.executeUpdate(addsql);

是不是到了这句话后,就抛异常了?直接被catch()了

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧