数据库连接池

1. 数据库连接池

1.1 为什么需要建立数据库连接池

  • 如果每次都通过DriverManager获取新连接,用完直接抛弃断开会导致资源浪费。
  • 频繁的获取和断开连接对服务器的压力太大可能导致服务器崩溃。

1.2 管理数据库连接池

  • 建立一个连接池,这个池中可以容纳一定数量的连接对象。可以先替用户先创建好一些连接对象,用户需要的时候直接从池中拿,使用完毕后归还回连接池。
  • 可以提高连接的使用率。当池中的现有的连接都用完了,那么连接池可以向服务器申
    请新的连接放到池中。
  • 直到池中的连接达到“最大连接数”,就不能在申请新的连接了,如果没有拿到连接的用户只能等待。
  • 连接池的作用:管理连接

2.Durid连接池的使用

2.1 硬编码方式

不推荐使用
硬编码方式:创建Druid连接池对象后设置相应的参数,这种方式在代码完成后改动不方便,所以不推荐使用

public void testHard() throws SQLException {
        //创建druid连接池对象
        DruidDataSource druidDataSource = new DruidDataSource();
        //设置必要的参数
        druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");//注意这里要写明驱动
        druidDataSource.setUrl("jdbc:mysql:///atguigu");
        druidDataSource.setUsername("root");
        druidDataSource.setPassword("123456");
        //获取连接
        DruidPooledConnection connection = druidDataSource.getConnection();
        //数据库curd
        见下文的curd
        //释放连接
        connection.close();
    }
//curd部分
String sql = " select * from t_user where account=? and password=?;";
java.sql.PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setObject(1, "num0");
preparedStatement.setObject(2, "0");
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
    int id = resultSet.getInt(1);
    String account1 = resultSet.getString(2);
    String password1 = resultSet.getString(3);
    String nickname = resultSet.getString(4);
    System.out.println("id:" + id + "  account:" + account1 + "  password:" + password1 + "  nickname :" + nickname);
        } else {
            System.out.println("用户不存在");
 }

2.2 软编码方式

推荐使用
软编码方式:相应的参数在外部的properties文件中设置,在java代码中通过读取外部配置文件即可完成参数的设置
需要修改参数的时候只需要在外部文件修改即可

public void testsoft() throws Exception{
        //创建properties对象
        Properties properties = new Properties();
        //读取配置文件流
        File file = new File("cfg/driudsoft.properties");
        FileInputStream fileInputStream = new FileInputStream(file);
        //加载配置文件
        properties.load(fileInputStream);
        //使用工厂方法创建对象并建立连接
        DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
        Connection connection = dataSource.getConnection();
        //数据库curd
        见上文的curd部分
        //关闭连接
        connection.close();
    }
//配置文件
driverClassName=com.mysql.cj.jdbc.Driver
username=root
password=123456
url=jdbc:mysql:///atguigu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值