创建表 JDBC-MS-ACCESS
Posted
技术标签:
【中文标题】创建表 JDBC-MS-ACCESS【英文标题】:Creating table 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,很轻量级的。此外,您的代码存在内存泄漏。您没有关闭数据库资源。 哦。我关闭了语句和连接。谢谢,还有什么要注意的吗? 【参考方案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可以给个提示以上是关于创建表 JDBC-MS-ACCESS的主要内容,如果未能解决你的问题,请参考以下文章