JdbcUtils类XML配置有毒,本地运行没事,Tomcat就报错,无奈手动配置
1、要求:
2、addCourse.jsp ------>AddCourseServlet ------>SelectCourseServlet ------>selectCourse.jsp
剩余:Course类、addCourse类、selectCourse类(查询结果存为List< Course>)、JdbcUtils类
附addCourse类、selectCourse类、JdbcUtils类:
addCourse类:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class AddCourse {
//传入插入SQL语句执行,返回成功与否
public boolean addCourse(Course course){
int flag =0;
Connection conn= null;
PreparedStatement prps = null;
try {
conn = JdbcUtils.getConnection();
prps = conn.prepareStatement("insert into course " +
"(id,name,category,desp,creatTime) values(null,?,?,?,?)");
prps.setString(1,course.getName());
prps.setString(2,course.getCategory());
prps.setString(3,course.getDesp());
prps.setTimestamp(4,JdbcUtils.getCurrentTimeStamp());
flag = prps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.release(prps,conn);
}
return flag==0?false:true;
}
}
selectCourse类:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class SelectCourse {
public static List<Course> selectCourse(){
Connection connection = JdbcUtils.getConnection();
String sql = "select * from course";
PreparedStatement preparedStatement =null;
ResultSet resultSet =null;
List<Course> courses= new ArrayList<>();
try {
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String category = resultSet.getString("category");
String desp = resultSet.getString("desp");
Timestamp creatTime = resultSet.getTimestamp("creatTime");
Course course =new Course(name,category,desp);
course.setCreatTime(creatTime);
courses.add(course);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.releaseAll(resultSet,preparedStatement,connection);
}
return courses;
}
}
JdbcUtils类:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.jupiter.api.Test;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcUtils {
private static ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
//获取连接
@Test
public static Connection getConnection(){
Connection connection = null;
try {
comboPooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC");
comboPooledDataSource.setUser("root");
comboPooledDataSource.setPassword("123");
connection= comboPooledDataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return connection;
}
//释放资源
public static void release (PreparedStatement preparedStatement, Connection connection ){
try {
if(preparedStatement!=null){
preparedStatement.close();
}
}catch (Exception e){
e.printStackTrace();
}
preparedStatement= null;
try {
if(connection!=null){
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
connection= null;
}
public static void releaseAll (ResultSet resultSet, PreparedStatement preparedStatement, Connection connection ){
try {
if(resultSet!=null){
resultSet.close();
}
}catch (Exception e){
e.printStackTrace();
}
resultSet= null;
try {
if(preparedStatement!=null){
preparedStatement.close();
}
}catch (Exception e){
e.printStackTrace();
}
preparedStatement= null;
try {
if(connection!=null){
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
connection= null;
}
//获取当前时间
public static java.sql.Timestamp getCurrentTimeStamp(){
java.util.Date today = new java.util.Date();
return new java.sql.Timestamp(today.getTime());
}
}