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();
    }
}

解决方案 »

  1.   

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

  2.   

    INSERT INTO emp VALUES (7250,'HELLO','WORlD',101,1990-01-12,0000,123,10)这句应该有问题。
      

  3.   

    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'这格式一样。
      

  4.   

    addsql有问题,如果是中文系统的话日期应是不能这样直接写的,试试to_date方法
      

  5.   

    会不会是线程阻塞或者进程假死,
    你关闭tomcat和eclipse重新来一下吧!3楼的分析也有道理,不仅要加单引号,
    如果数据库是日期(date)格式,还要转型:to_date('1990-01-12','yyyy-mm-dd')