javaWeb:连接池学习druid
1.连接池是什么?
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。是装有连接的容器
2.druid开源连接池:
druid中有API :获取连接mysql
DruidDataSource dataSource=new DruidDataSource();//创建druid对象
dataSource.setDriverClassName(“com.mysql.jdbc.Driver”);//驱动连接
dataSource.setUrl(“jdbc:mysql://localhost:3306/new_schema”);//连接数据库
dataSource.setUsername(“root”); //用户名
dataSource.setPassword(“your-password”);//密码
Connection conn=dataSource.getConnection(); //连接完整
代替了:
导入druid开源连接池:
版本:(要不然不兼容) 选择合适的
mysql-connector: 8.0.27
druid:1.2.8
import com.alibaba.druid.pool.DruidDataSource;
import java.sql.*;
public class yourew {
//driverClassName=com.mysql.jdbc.Driver
//url=jdbc:mysql://localhost:3306/new_schema
//password=your-password
//username=root
public static void main(String[]args) {
DruidDataSource dataSource=new DruidDataSource();
// dataSource.setDriverClassName("com.mysql.jdbc.Driver");
// dataSource.setUrl("jdbc:mysql://localhost:3306/new_schema");
//dataSource.setUsername("root");
//dataSource.setPassword("your-password");
// Connection conn=dataSource.getConnection();//获得连接
try{
//手动设置数据库连接参数
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/new_schema");
dataSource.setUsername("root");
dataSource.setPassword("your-password");
Connection conn=dataSource.getConnection();
String sql="select* from user";
Statement sqtm=conn.createStatement();
ResultSet rs=sqtm.executeQuery(sql);
while (rs.next()){
System.out.println("Helloworld!");
System.out.println(rs.getString("password")+" "+rs.getString("username")+""+rs.getInt("idusers"));
}
} catch (Exception e) {
e.printStackTrace();
}
}}
结果:运行成功:
druid:配置文件:和jdbc工具类一样
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/new_schema
password=your-password
username=root
配置完了:
Properties properties=new Properties();
properties.load(new FileInputStream(“D:\javac\projects\jdbc学习\src\dp.properties”));
//创建文件对象,读取文件对象
DruidDataSource druidDataSource= (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);//创建druid对象, 这里有:
DruidDataSourceFactory.createDataSource();//
换成这个:
DataSource dataSource=DruidDataSourceFactory.createDataSource(properties);
(这个):读取文件(省略一些代码)
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class youreww {
public static void main(String[] args) {
Connection con=null;
//DruidDataSource dataSource=new DruidDataSource();
// dataSource.setDriverClassName("com.mysql.jdbc.Driver");
// dataSource.setUrl("jdbc:mysql://localhost:3306/new_schema");
//dataSource.setUsername("root");
//dataSource.setPassword("your-password");
// Connection conn=dataSource.getConnection();//获得连接
try{
//手动设置数据库连接参数
Properties properties=new Properties();
properties.load(new FileInputStream("D:\\javac\\projects\\jdbc学习\\src\\dp.properties"));
DataSource dataSource=DruidDataSourceFactory.createDataSource(properties);
// dataSource.setDriverClassName("com.mysql.jdbc.Driver");
// dataSource.setUrl("jdbc:mysql://localhost:3306/new_schema");
// dataSource.setUsername("root");
// dataSource.setPassword("your-password");
Connection conn=dataSource.getConnection();
String sql="select* from user";
Statement sqtm=conn.createStatement();
ResultSet rs=sqtm.executeQuery(sql);
while (rs.next()){
System.out.println("Helloworld!");
System.out.println(rs.getString("password")+" "+rs.getString("username")+""+rs.getInt("idusers"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
效果图:
学习中遇到的错误:
1.druid连接池 匹配mysql-connector 不成功:
效果:
控制台输出了:
Cannot resolve com.mysq.jdbc.Connection.ping method. Will use ‘SELECT 1’ instead.
com.alibaba.druid.pool.DruidDataSource error…
解决方法:下载:最新版本的druid
https://mvnrepository.com/artifact/com.alibaba/druid/1.2.8