数据库连接池需要用到druid-1.1.12.jar 并用QueryRunner工具类需要commons-dbutils-1.7.jar两个包
配置在WEB-INF下的lib里
下面是创建resourcse文件夹设置为Resources Root
里面创建druid.properties
Mysq8.0版本
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/onlinedb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username=root
password=root
#初始化连接数量
initialSize=5
#最大连接数
maxActive=10
#最大等待时间
maxWait=3000
JDBCutils
package JDBC;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/*
Druid连接池的工具类
*/
public class JDBCutils {
//1.定义成员变量 DataSource
private static DataSource ds;
static {
//1.加载配置文件
Properties pro = new Properties();
try {
pro.load(JDBCutils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接池
public static DataSource getDataSource(){
return ds;
}
//获取连接
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
//释放资源
public static void close(Statement stmt,Connection conn){
if (stmt!=null) {
try {
stmt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
if (conn!=null){
try {
conn.close();//归还连接
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
public static void close(ResultSet rs, Statement stmt, Connection conn){
if (rs!=null) {
try {
rs.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
if (stmt!=null) {
try {
stmt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
if (conn!=null){
try {
conn.close();//归还连接
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
dao
package dao;
import JDBC.JDBCUtil;
import JDBC.JDBCutils;
import User.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
public class ldao {
QueryRunner qr = new QueryRunner(JDBCutils.getDataSource());
//添加
public int addUser( User user) throws SQLException {
String sql = "insert into lianjiechi values(?,?)";
return qr.update(sql, user.getId(),user.getName() );
}
//查询
public List<User> queryUser() throws SQLException {
String sql = "select * from lianjiechi";
List<User> users = qr.query(sql, new BeanListHandler<User>(User.class));
return users;
}
//删除
public int dropUser(String id) throws SQLException {
String sql = "delete from lianjiechi where id = ?";
return qr.update(sql, id);
}
//根据id查用户
public User modifyUser(String id) throws SQLException {
String sql = "select * from lianjiechi where id=?";
User user = qr.query(sql, new BeanHandler<User>(User.class), id);
return user;
}
//修改用户
public int upDateServlet(User user) throws SQLException {
String sql = "update lianjiechi set name = ? where id = ?";
int row = qr.update(sql, user.getName(), user.getId());
return row;
}
}
Servlet和实体类 大同小异