数据库工具类 当前mysql数据库版本为8.011
1.配置文件 jdbc.properties(红字为新版本必须添加)
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db1?characterEncoding=UTF-8&
serverTimezone=Hongkong&useSSL=false&autoReconnect=true&failOverReadOnly=false
name=root
password=root
InitialSize=2
MaxIdle=4
2.工具类 获取配置文件 驱动名称,url,mysql用户名,mysql密码,连接池默认大小,以及连接池最大值
将配置属性加入连接池
package uitl;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import org.apache.commons.dbcp2.BasicDataSource;
public class JDBCUtil {
// 驱动名称
static String driverClass = null;
// URL指向要访问的数据库名mydata
static String url = null;
// MySQL配置时的用户名
static String name = null;
// MySQL配置时的密码
static String password = null;
// 数据库连接池初始数量
static Integer initSize;
// 数据库连接池最大数量
static Integer maxSize;
// 数据库连接池
static BasicDataSource dataSource;
/**
* 读取配置文件 设置以上属性
* 以配置文件获得 驱动名称,url,mysql用户名,mysql密码,连接池默认大小,连接池最大值
* 创建连接池
*/
static {
try {
Properties properties = new Properties();
// InputStream is = new FileInputStream("jdbc.properties");
// 文件必须在src文件夹或resources文件夹下
InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(is);
// 读取配置文件属性
driverClass = properties.getProperty("driverClass");
url = properties.getProperty("url");
name = properties.getProperty("name");
password = properties.getProperty("password");
initSize = Integer.valueOf(properties.getProperty("InitialSize"));
maxSize = Integer.valueOf(properties.getProperty("MaxIdle"));
// *****连接池相关************
dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(name);
dataSource.setPassword(password);
// 设置初始化连接数量
dataSource.setInitialSize(initSize);
// 设置最大连接数据
dataSource.setMaxIdle(maxSize);
} catch (Exception e) {
// TODO: handle exception
}
}
3.创建加载驱动并且获得连接对象的方法
/**
*
* @Title: getConn
* @Description: TODO(加载驱动并且获取连接对象)
* @param: @return
* @return: Connection 连接对象
* @throws
*/
public static Connection getConn() throws Exception {
return dataSource.getConnection();
}
4.创建关闭资源方法
/**
*
* @Title: release
* @Description: TODO(关闭资源)
* @param: @param conn
* @param: @param stat
* @param: @param rs
* @return: void
* @throws
*/
public static void release(Connection conn, Statement stat, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
5.定义数据库增删改查的接口
package dao;
import java.util.ArrayList;
import domain.User;
/**
*
* @ClassName: UserDao
* @Description:TODO(定义操作数据库的方法)
* @author: kiko
* @date: 2018年5月24日 上午10:22:19
*
* @Copyright: 2018
*/
public interface UserDao {
/**
*
* @Title: findAll
* @Description: TODO(查询数据库user所有数据的接口)
* @param: @return
* @return: ArrayList<User> User对象集合
* @throws
*/
ArrayList<User> findAll();
/**
*
* @Title: insert
* @Description: TODO(向数据库添加user的接口)
* @param: @param s
* @return: void
* @throws
*/
void insert(User s);
/**
*
* @Title: update
* @Description: TODO(按照id修改数据库中user的接口)
* @param: @param s
* @param: @param id
* @return: void
* @throws
*/
void update(User s, int id);
/**
*
* @Title: delete
* @Description: TODO(删除数据库数据的接口)
* @param: @param s
* @return: void
* @throws
*/
void delete(User s);
}
6 根据具体情况实现接口 和调用