我想从MySQL数据库中打印出一列。我有一个日历系统,您可以在其中选择“从”日期“到”日期。当您选择时间段时,它应该从MySQL数据库打印出COLUMN“Allday_hours”。我正在使用javascript,AJAX和JSON。这是在调用我的servlet。我制作的第一个servlet没有打印任何东西,但它给了我一个成功。因此,在堆栈溢出的人的帮助下,代码发生了变化,看起来更正确,但现在它给了我一个失败。我制作了2个视频。有谁能看到这里有什么问题?我用于两个servlet的javascript代码
最诚挚的问候 MADS
第一个成功的servlet: 视频: https://www.youtube.com/watch?v=UzdvQ4B9clw&feature=youtu.be
Servlet代码:
package WorkPackage;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/getHoursSQL")
public class getHoursSQL extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/NekiWork";
Connection connection=null;
res.setContentType("text/html");
PrintWriter out = res.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "");
String sql = "SELECT *, (Day_hours + (Day_minutes / 100)) AS Allday_hours FROM Workdata";
PreparedStatement pst = connection.prepareStatement(sql);
pst.execute(sql);
pst.close();
}
catch(ClassNotFoundException e){
out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
out.println(ignored);
}
}
}
}
此视频和代码是最新版本,它会给我一个错误。我已经//添加了新代码: 视频: https://www.youtube.com/watch?v=6DO1GnjDRWk
Servlet代码:
package WorkPackage;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/getHoursSQL")
public class getHoursSQL extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/NekiWork";
Connection connection=null;
String all_day_hours = null; // new code
res.setContentType("text/html;charset=UTF-8"); // new code
res.getWriter().write(all_day_hours); // new code
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "");
String sql = "SELECT *, (Day_hours + (Day_minutes / 100)) AS Allday_hours FROM Workdata";
PreparedStatement pst = connection.prepareStatement(sql);
ResultSet rs = pst.executeQuery(sql);
if(rs.next()){ // new code
all_day_hours = rs.getString("Allday_hours"); // new code
} // new code
pst.close();
}
catch(ClassNotFoundException e){
System.out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
System.out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
System.out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
System.out.println(ignored);
}
}
}
}
Javascript代码:
<form>
<input id="startDate" />
<input id="endDate" />
</form>
<div id="result"></div>
<script>
$(function(){
$("#startDate").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(dateText,inst){
alert(dateText);
$.ajax({
url: "../getHoursSQL",
type: "post",
data: JSON,
success: function(data){
alert("success");
$("#result").html(data);
},
error:function(){
alert("failure");
$("#result").html('there is error while submit');
}
});
}
});
});
$(function(){
$("#endDate").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(dateText,inst){
alert(dateText);
$.ajax({
url: "../getHoursSQL",
type: "post",
data: JSON,
success: function(data){
alert("success");
$("#result").html(data);
},
error:function(){
alert("failure");
$("#result").html('there is error while submit');
}
});
}
});
});
</script>
答案 0 :(得分:0)
正确答案:
package WorkPackage;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/getHoursSQL")
public class getHoursSQL extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/NekiWork";
Connection connection=null;
// new code
// new code
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "");
String sql = "SELECT *, (Day_hours + (Day_minutes / 100)) AS Allday_hours FROM Workdata";
PreparedStatement pst = connection.prepareStatement(sql);
ResultSet rs = pst.executeQuery(sql);
String all_day_hours = null;
if(rs.next()){ // new code
all_day_hours = rs.getString("Allday_hours"); // new code
} // new code
pst.close();
res.setContentType("text/html;charset=UTF-8"); // new code
res.getWriter().write(all_day_hours);
}
catch(ClassNotFoundException e){
System.out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
System.out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
System.out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
System.out.println(ignored);
}
}
}
}