java - Java Web 应用程序中通过 NetBeans 的 JDBC 到 MySQL

标签 java mysql jsp servlets

我正在尝试使用 doPost() 方法在此 servlet 中建立与数据库 (MySQL) 的连接。我不知道问题出在哪里。我可以在此 servlet 内建立连接还是需要创建一个新的 Java 类?

package com.EventListing.servlets;

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

public class ViewEventListing extends HttpServlet {


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

    } 

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

        PrintWriter out = response.getWriter();
        String eventTitle= request.getParameter("eventTitle");
        String location = request.getParameter("location");

        out.println("Welcome "+ eventTitle+"! The Email Address "+location+" has been "
                  + "added to our mailing list.");


         try {
             Class.forName("com.mysql.jdbc.Driver");
             out.println("Driver Loading Done!");
         } catch(ClassNotFoundException e) {
             e.printStackTrace();
         }
         String connURL = "jdbc:mysql://localhost/eventlistings" ;
         String user = "root";
         String pass = "sheridan";


            Connection conn ;;
        try {
             conn =  DriverManager.getConnection(connURL, user, pass);
        } catch (SQLException ex) {
            Logger.getLogger(ViewEventListing.class.getName()).log(Level.SEVERE, null, ex);
        }
        out.println("Connection Done!");


        String sql = "INSERT INTO eventlistings "+"(Title, Location)" + 
    "VALUES('simran', 'Brampton');";


          PreparedStatement ps = conn.prepareStatement();

          out.close();
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

这是一个 servlet,我想使用它从 MySQL 获取一些数据,但我什至无法连接到数据库。当我尝试使用准备好的语句(即preparedStatement ps)时,出现错误。

最佳答案

  1. 仅在您想要使用不同参数重用 sql 的情况下使用 PreparedStatment

  2. 建议您改用

    语句 stmt = conn.createStatement();

    stmt.execute(sql);

而不是:

PreparedStatement ps = conn.prepareStatement();

关于java - Java Web 应用程序中通过 NetBeans 的 JDBC 到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575709/

相关文章:

mysql - 插入重复键导致自动增量字段出现问题

javascript - javascript 中的 ${variable} 未在 jsp 中替换

(动态)表行更改的 jQuery 事件

javascript - 需要使用JS获取<a>标签的 "id"属性

java - 使用单个 Controller 调用服务依赖于 PathVariable

java - 在 Java 中将字符串从 Windows 字符集转换为 UTF 8

java - 符号 "BasicFileAttributes.class "在java7中意味着什么?

java - 如何将数据插入动态定义列的swing表(来自mysql数据库的数据)?

mysql - 使用 WHERE 或 ON 进行过滤

java - 我正在尝试用java创建一个三角形