美文网首页
jdbc demo04 2021-01-04

jdbc demo04 2021-01-04

作者: Gyalsten | 来源:发表于2021-01-04 22:20 被阅读0次

    连接池原理:重用池子里的连接对象
    连接池使用的原因:因为多线程并发,数据库连接上线只有300--500,同时操作数据库就需要使用连接池技术

    创建常量池必须的流程:
    1、maven配置 dbcp jar包
    2、创建basicdatasource连接池管理员对象
    3、设置四个连接数据库连接的必备参数 dirverClassName Url userName passWord
    两个 连接池的管理员策略参数 一是 连接对象的数量setInitialSize() 二是最大的连接数量 setMaxActive()
    4、通过basicdatasource连接池管理员对象 获得连接对象 connection
    5、获得statement对象操作数据库
    ----------------------------------代码区域---------------------------------------------------
    package demo05;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import org.apache.commons.dbcp.BasicDataSource;

    public class TestDemo {

    public static void main(String[] args) {
        
        String driverClassName = "com.mysql.cj.jdbc.Driver" ;
        String url = "jdbc:mysql://localhost:3306/demo01" ;
        String username = "root" ;
        String password = "zhaxi2727" ;
        
        //创建连接池管理员对象
        BasicDataSource bds = new BasicDataSource() ;
        //设置必须按参数 4个
        bds.setDriverClassName(driverClassName) ;
        bds.setUrl(url) ;
        bds.setUsername(username) ;
        bds.setPassword(password) ;
        //设置连接池的管理策略参数
        //启动时连接池中连接对象的数量
        bds.setInitialSize(2) ;
        //设置最大的连接对象
        bds.setMaxActive(2) ;
        
        Connection con = null ;
        try {
            //得到连接对象 连接数据库
             con = bds.getConnection() ;
             //获得statement 对象 操作数据库
             Statement sta = con.createStatement() ;
             //sql语句
             String sql = "select 'hello' from dual" ;
             //得到结果集 
             ResultSet rs = sta.executeQuery(sql) ;
             while(rs.next()){
                 String str = rs.getString(1) ;
                 System.out.println(str);
             }
             rs.close() ;
             rs.close() ;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                //在此不是关闭, 是归还
                //把资源归还供其他使用
                con.close() ;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }
    

    }

    相关文章

      网友评论

          本文标题:jdbc demo04 2021-01-04

          本文链接:https://www.haomeiwen.com/subject/ckeboktx.html