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

在这里插入图片描述