不使用数据库连接池
- 不使用工具类获取连接(以及注册驱动):
//注册驱动
Class.forName("com.mysql.jdbc.Driver");//把要注册的驱动加载进内存
//获取数据库连接对象
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "4719");
- 使用工具类、配置文件获取连接(以及注册驱动):
con=JDBCUtils.getconnection();
工具类代码(加载配置文件、注册驱动、获取连接部分):
private static String url;
private static String user;
private static String password;
private static String driver;
/**
* 静态代码块:随着类的加载而加载,只执行一次。用来读取配置文件的信息,并注册驱动
*/
static {
try {
//创建Properties集合类对象
Properties pro = new Properties();
//获取src路径下的文件的方式--->classLoader类加载器
//classLoader可以加载字节码文件进内存,并且可以获取资源路径
//通过类JDBCUtils获得JDBCUtils的类加载器,再通过getResource获得配置文件的资源路径(非配置文件存储路径)
String path = JDBCUtils.class.getClassLoader().getResource("jdbc.properties").getPath();
//加载配置文件
pro.load(new FileReader(path));
//获取数据,并赋值
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接
* @return 连接对象
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
配置文件:
url=jdbc:mysql:///db3
user=root
password=4719
driver=com.mysql.jdbc.Driver
使用数据库连接池
- 不使用工具类获取连接(注册驱动步骤隐藏):
//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties pro = new Properties();
InputStream is = DruidDemo01.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn = ds.getConnection();
- 使用工具类、配置文件获取连接(注册驱动步骤隐藏:
conn = JDBCUtils.getconnection();
工具类代码(加载配置文件、获取连接部分):
//1.定义成员变量 DataSource
private static DataSource ds;
//静态代码块:加载配置文件,初始化连接池对象
static{
try {
//1.加载配置文件
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
配置文件:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db3
username=root
password=4719
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
#最大等待时间
maxWait=3000
总结对比
使用数据库连接池的缺点:
- 每次都需要向操作系统底层申请连接,用完再释放,效率低下。
- 配置文件的数据要手动获取,再用DriverManager.getConnection()获取连接,代码复杂。
使用数据库连接池的优点:
- 数据池获取连接,节约资源,用户访问高效。
- 自动读取配置文件的数据,获取连接,代码简洁。
画图板整理原件

相关文章推荐
版权声明:本文为weixin_43971764原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。