自由编程报错???


package com.imooc.jdbc.demo1;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.imooc.jdbc.utils.JDBCUtils;
public class AddCourseServlet extends HttpServlet {
public void deGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
//接收jsp传过来的参数
String name = request.getParameter("name");
String category = request.getParameter("category");
String desp = request.getParameter("desp");
String createTime=request.getParameter("createTime");
//保存数据到数据库
Connection conn=null;
PreparedStatement pstmt=null;
try {
//获得连接
conn=JDBCUtils.getConnection();
//编写SQL
String sql="insert into course values(null,?,?,?,?)";
//预处理SQL
pstmt=conn.prepareStatement(sql);
//设置参数值
pstmt.setString(1, name);
pstmt.setString(2, category);
pstmt.setString(3, desp);
pstmt.setString(4, createTime);
//执行SQL
int i=pstmt.executeUpdate();
if(i>0) {
System.out.println("添加成功!");
request.getRequestDispatcher("showCourseServlet").forward(request, response);
}
}catch(Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.release(pstmt, conn);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}***************************************
package com.imooc.jdbc.demo1;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/*
* JDBC的工具类
* @author jt
*/
public class ConnectionUtil{
private static final ComboPooledDataSource dataSource=new ComboPooledDataSource();
/*
* 获得连接的方法
* @throws SQLException
*/
public static Connection getConnection() throws Exception{
Connection conn=dataSource.getConnection();
return conn;
}
/*
* 资源释放
*/
public static void release(Statement stmt,Connection conn) {
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
public static void release(ResultSet rs,Statement stmt,Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
}**************************************************
package com.imooc.jdbc.demo1;
import java.sql.Date;
public class Course{
private int id;
private String name;
private String category;
private String desp;
private Date createTime;
public Course() {
super();
}
public Course(int id, String name, String category, String desp, Date createTime) {
super();
this.id = id;
this.name = name;
this.category = category;
this.desp = desp;
this.createTime = createTime;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getDesp() {
return desp;
}
public void setDesp(String desp) {
this.desp = desp;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Course [id=" + id + ", name=" + name + ", category=" + category + ", desp=" + desp + ", createTime="
+ createTime + "]";
}
}****************************************************************
package com.imooc.jdbc.demo1;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.imooc.jdbc.utils.JDBCUtils;
import com.mysql.cj.xdevapi.Result;
/*
* 显示所有课程的Servlet
*/
public class ShowCourseServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) {
//定义一个List集合来存放课程
List<Course> courseList=new ArrayList<Course>();
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
//获得连接
conn=JDBCUtils.getConnection();
//编写SQL
String sql="select * from course";
//预编译SQL
pstmt=conn.prepareStatement(sql);
//执行SQL
rs=pstmt.executeQuery();
while(rs.next()) {
int id=rs.getInt("id");
String name=rs.getString("name");
String category=rs.getString("category");
String desp=rs.getString("desp");
Date createTime=rs.getDate("createTime");
System.out.println(id+" "+name+" "+category+" "+desp+" "+createTime);
//将结果封装到Course中
Course course=new Course();
course.setId(id);
course.setName(name);
course.setCategory(category);
course.setDesp(desp);
course.setCreateTime(createTime);
//将结果存放到List集合中
courseList.add(course);
System.out.println(courseList);
}
request.setAttribute("list", courseList);
request.getRequestDispatcher("/showCourse.jsp").forward(request, response);
}catch(Exception e) {
e.printStackTrace();
}finally {
//释放资源
JDBCUtils.release(rs, pstmt, conn);
}
}
public void dePost(HttpServletRequest request,HttpServletResponse response) {
doGet(request,response);
}
}正在回答 回答被采纳积分+1
你好同学,如下图所示标记的位置,很明显你的路径是错误路径,请问你有在web.xml中配置ShowCourseServlet的映射路径吗?

建议同学使用注解来完成,譬如添加如下标记的代码,然后在使用http://localhost:8080/ShowCourseServlet来访问该serlvet,祝学习愉快~

下图标记的泛型应该是你对应的实体类,建议你将下图两个地方改为Course就不会报错了,getName方法是Course类中的,而不是ShowCourseServlet中的方法哦,祝学习愉快~

你好同学,你在下图的标记的地方缺少java.util.*这个包哦,所以导致list集合无法使用(list集合是java.util这个包下的),在下图标记的地方再添加java.util.*这个引用就可以了,祝学习愉快~

你好同学,如下图所示,建议你将java.util.Date,改为java.sql.Date。这是两个不同的包哦,修订之后后不会报错了。

修订之后的效果如下,祝学习愉快~

package com.imooc.jdbc.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import org.junit.jupiter.api.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/*
* JDBC的工具类
* @author jt
*/
public class JDBCUtils {
private static final ComboPooledDataSource dataSource=new ComboPooledDataSource();
/*
* 获得连接的方法
* @throws SQLException
*/
public static Connection getConnection() throws Exception{
Connection conn=dataSource.getConnection();
return conn;
}
/*
* 资源释放
*/
public static void release(Statement stmt,Connection conn) {
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
public static void release(ResultSet rs,Statement stmt,Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
}create database jdbctest; use jdbctest; create table course( id INT primary key AUTO_INCREMENT COMMENT '课程编号', name VARCHAR(20) NOT NULL COMMENT '课程名称', category VARCHAR(20) NOT NULL COMMENT '课程方向', desp VARCHAR(30) NOT NULL COMMENT '课程描述', createTime DATETime NOT NULL COMMENT '创建时间' ); insert into course values (null,"Java零基础","Java","Java基础语法",now DATE); insert into course values (null,"Java Web","Java","JSP和Servlet",now DATE); insert into course values (null,"前端小白","前端","HTML/CSS/JS",now DATE);
create database jdbctest; use jdbctest; create table course( id INT primary key AUTO_INCREMENT COMMENT '课程编号', name VARCHAR(20) NOT NULL COMMENT '课程名称', category VARCHAR(20) NOT NULL COMMENT '课程方向', desp VARCHAR(30) NOT NULL COMMENT '课程描述', createTime DATETime NOT NULL COMMENT '创建时间' ); insert into course values (null,"Java零基础","Java","Java基础语法",now DATE); insert into course values (null,"Java Web","Java","JSP和Servlet",now DATE); insert into course values (null,"前端小白","前端","HTML/CSS/JS",now DATE);
你好同学,建议你将sql建表语句也粘贴一下,方便老师对你的代码进行系统的调试,并告诉你那里出现了问题,祝学习愉快~
配置文件
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///jdbctest?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8
username=root
password=1234
********************************************************************************************
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>课程添加</title> </head> <body> <form action="AddCourseServlet" method="post" enctype="multipart/from-data"> <h3 align = "center">课程添加</h3> <table align="center"> <tr> <td>课程名</td> <td><input type="text" name="name"></td> </tr> <tr> <td>所属方向</td> <td><input type="text" name="category"></td> </tr> <tr> <td>课程描述</td> <td><input type="text" name="desp"></td> </tr> <tr> <td><input type="submit" value="添加"></td> </tr> </table> </form> </body> </html>
*************************************************************************
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h3>错误跳转页面</h3> </body> </html>
************************************************
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示所有课程</title>
</head>
<body>
<h3 align="center">添加成功</h3>
<table align="center">
<tr>
<td>课程名称</td>
<td>所属方向</td>
<td>课程描述</td>
<td>创建时间</td>
</tr>
<%
//获取集合
List<ShowCourseServlet> courseList = (List<ShowCourseServlet>)request.getAttribute("list");
for(ShowCourseServlet course : courseList) {
%>
<tr>
<td><%=course.getName() %></td>
<td><%=course.getCategory() %></td>
<td><%=course.getDesp() %></td>
<td><%=course.getCreateTime() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>自由编程8-2的作业完成,运行报错???老师帮忙看看???
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程







恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星