【问题标题】:Creating table JDBC-MS-ACCESS创建表 JDBC-MS-ACCESS
【发布时间】:2013-08-25 11:53:43
【问题描述】:

插入值表分支后,我想创建一个新表。值来自 jsp 页面。值已成功插入,但未创建表,它不检查 if 语句,我只有一个空白页。 谢谢。

 package Servlets;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;


    @WebServlet(name = "Decidetest", urlPatterns = {"/Decidetest"})
    public class Decidetest extends HttpServlet {


        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            Connection con;
            Statement s; 
             String branch=request.getParameter("branch");
             String semester=request.getParameter("semester");
             String course=request.getParameter("course");
             String name=request.getParameter("tname");
             String time=request.getParameter("duration");
             String number=request.getParameter("number");
             String type=request.getParameter("r1");
            try {
                 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               con=DriverManager.getConnection("jdbc:odbc:online_testing");
               s=con.createStatement();
               String sql="insert into tests(branch,sem,course,testname,duration,noofque) values('"+branch+"','"+semester+"','"+course+"','"+name+"','"+time+"','"+number+"')";
               s.executeUpdate(sql);
               String sql3="CREATE TABLE "+name+"(option1 varchar(255)),option2 varchar(255),option3 varchar(255),option4 varchar(255),answer varchar(255)) ";
                s.executeUpdate(sql3);
s.close();
con.close();
               if(type.equals("make"))
               {
                  response.sendRedirect("preparetest.jsp");
               }
                else
               {
                  response.sendRedirect("selectbank.jsp");
               }
            } catch (SQLException ex) {
                Logger.getLogger(Decidetest.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Decidetest.class.getName()).log(Level.SEVERE, null, ex);
            } finally {            
                out.close();
            }
        }

        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }

        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }


        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
    }

【问题讨论】:

  • 帮自己一个忙。使用真实的数据库。
  • 不要使用 Access 或 JDBC-ODBC。访问是一个笑话,JDBC-OBDC 很快就会从 Java 中删除。
  • 好的。实际上这是我们在大学里教过的。下次我会注意的。感谢您的建议。
  • 你应该和你的教授谈谈或者换大学,他对数据库一无所知。看看HSQLDB还是H2,很轻量级的。此外,您的代码存在内存泄漏。您没有关闭数据库资源。
  • 哦。我关闭了语句和连接。谢谢,还有什么要注意的吗?

标签: jsp ms-access servlets jdbc


【解决方案1】:

您在 options1 定义后关闭两个 )

String sql3="CREATE TABLE "+name+" (option1 varchar(255),option2 varchar(255),option3 varchar(255),option4 varchar(255),answer varchar(255)) ";

【讨论】:

  • 谢谢,我可以在创建表时使用文本作为列的数据类型吗?
  • IDK,取决于 MS-Access 是否支持文本类型或 Blob 等效项。或许this link可以给个提示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多