Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在rDao.insert(log)处遇到未处理的SQL异常?_Java - Fatal编程技术网

Java 为什么我在rDao.insert(log)处遇到未处理的SQL异常?

Java 为什么我在rDao.insert(log)处遇到未处理的SQL异常?,java,Java,每当我尝试调用RegisterDao中的insert方法时,Eclipse中就会出现一个“未处理的SQL异常”错误,这迫使我添加一个catch-try块。这总是把我搞得一团糟,因为try-catch使我将结果初始化为null。。。我不能让它工作 LogServlet.java import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.s

每当我尝试调用RegisterDao中的insert方法时,Eclipse中就会出现一个“未处理的SQL异常”错误,这迫使我添加一个catch-try块。这总是把我搞得一团糟,因为try-catch使我将结果初始化为null。。。我不能让它工作

LogServlet.java

import java.io.IOException;
import java.sql.SQLException;
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("/LogServlet")
public class LogServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LogServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

     @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
        
     }


@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
         
            String id = request.getParameter("id");
            String name = request.getParameter("name");
            String title = request.getParameter("title");
            String date = request.getParameter("date");
            Log log = new Log(id, name, title, date);
        
            RegisterDao rDao = new RegisterDao();
         String result;
        result = rDao.insert(log);
        response.getWriter().print(result);
}
}

RegisterDao.java

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class RegisterDao {
    

    private static final String USERNAME = "dbuser";
    private static final String PASSWORD = "dbpassword";
    private static final String M_CONN_STRING =
            "jdbc:mysql://localhost/loggy";

    
    
    
    public String insert(Log log) throws SQLException {
    
    
        Connection con = DBUtil.getConnection(DBType.MYSQL);
        String result = "Data entered successfully";
        String sql = "insert into logs values(?,?,?,?)";
    
        PreparedStatement ps;
        try {
        ps = con.prepareStatement(sql);
        ps.setString(1, log.getid());
        ps.setString(2, log.getName());
        ps.setString(3, log.getTitle());
        ps.setString(4, log.getDate());
        ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            result = "Data not entered";
        }
        return result;
    }

}

当您有
catch(SQLException e)
时,为什么有
insert(Log Log)抛出SQLException
?为什么不更改此代码?当我执行抛出操作时,我收到另一个抛出操作,说在连接con=DBUtil.getConnectionKeep
result
之外有一个SQL异常未处理。在
try
中添加
con
sql
ps