美文网首页
jdbc 05 2021-01-05

jdbc 05 2021-01-05

作者: Gyalsten | 来源:发表于2021-01-05 23:27 被阅读0次

    连接池 maxactive最大连接2个对象
    要实现第三个在等待状态,第三个处在阻塞状态
    当同时执行三个对象 第三个要阻塞 我们使用线程
    第一、三个线程 前两个中任意一个连接 close连接资源提交后第三个才能使用
    第二、实现有三个线程 前两个执行5毫秒 第三个要等待5毫秒

    Thread.sleep(5000).jpeg

    package demo07;

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

    import demo06.DBUtile;

    //多线程 访问数据库
    public class DbUtile {

    public static void main(String[] args) {
        Thread t1 = new DemoThread(5000,"线程1") ;
        Thread t2 = new DemoThread(5000,"线程2") ;
        Thread t3 = new DemoThread(5000,"线程3") ;
        t1.start() ;
        t2.start() ;
        t3.start() ;
    }
    

    }
    //线程 访问数据库
    class DemoThread extends Thread{
    //线程等待时间
    int wait ;
    //线程名字
    String thread_Name ;
    public DemoThread(int wait, String thread_Name){
    this.wait = wait ;
    this.thread_Name = thread_Name ;
    }
    @Override
    public void run() {
    Connection con = null ;
    try {
    con = DBUtile.getConnection() ;
    System.out.println("线程名:"+thread_Name+"; 获得连接:"+con+",阻塞时间:"+wait);
    Statement sta = con.createStatement() ;
    String sql = "select 'hello' from dual" ;
    ResultSet rs = sta.executeQuery(sql) ;
    while(rs.next()){
    String str = rs.getString(1) ;
    System.out.println(str);
    }
    Thread.sleep(wait);
    rs.close() ;
    sta.close() ;
    } catch (Exception e) {
    e.printStackTrace();
    } finally{
    DBUtile.closeConnection(con);
    }
    }
    }

    相关文章

      网友评论

          本文标题:jdbc 05 2021-01-05

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