JDBC(Java数据库连接)
- 代码
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.commons.dbcp.BasicDataSource;
//数据库封装类
public class DBUtil {
public static Connection conn = null;
static Properties properties = new Properties();
static BasicDataSource base = null;
// 静态代码块,资源只加载一次,并且优先加载
static {
InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
try {
properties.load(in);
// 创建数据源对象,连接池
base = new BasicDataSource();
base.setDriverClassName(properties.getProperty("driver"));
base.setUrl(properties.getProperty("url"));
base.setUsername(properties.getProperty("username"));
base.setPassword(properties.getProperty("password"));
// 初始化连接数
base.setInitialSize(5);
// 最大激活量
base.setMaxActive(10);
// 最小空闲数
base.setMinIdle(3);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
try {
conn = base.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/*
* public static void main(String[] args) {
*
* DBUtil util = new DBUtil(); System.out.print(util.getConnection());
*
* }
*/
}
Properties类
- java.util.Properties是util工具包下的类
- 是Java配置文件使用的类
- java.util.Hashtable<Object,Object> 是它的直接父类
- 线程安全的,多个线程可以共享一个Properties对象,而不需要外部同步
- properties文件是以key=value 的 键值对的形式进行存储
db.properties文件配置
1.存放位置
2.此文件是将数据库连接需要的数据进行封装,便于修改和调用。
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_mytest?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
username=root
password=123456
BasicDataSource 类
- 为什么要创建连接池?
- 用来管理多个Connection对象,这样可以重复使用,极大地解决了资源的循环利用问题
- 而且当调用close方法并不会销毁或关闭连接,是归还给连接池了
- 他是Tomcat的内置连接池
- 使用时要导入依赖
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
- 常用方法
1.必须
driverClassName 数据库驱动名称
url 数据库的地址
username 用户名
password 密码
2.可选
initialSize 初始化连接
maxActive 最大连接数量
minIdle 最小空闲连接
maxIdle 最大空闲连接