zoukankan      html  css  js  c++  java
  • 数据库连接和数据库连接池连接

    数据库直连

    方式:DriverManager

    需要引入的jar包:我用的版本是mysql-connecton-java-5.1.7-bin.jar

    //1.加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    //2. 获得数据库连接			
    con = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);
    //3.操作数据库,实现增删改查			
    stmt = (Statement) con.createStatement();
    String sql;
    sql = "select name,password from a"; 
    ResultSet rs = stmt.executeQuery(sql);
    	
    while(rs.next()){
         String name = rs.getString("name");
            String password = rs.getString("password");
    	//System.out.println("name:"+name);			
            //System.out.println("password:"+password);
    }
    rs.close();
    stmt.close();
    con.close();        

    数据库连接池

    方式一:DBCP

    方式二:C3P0

    DBCP:

    配置文件context.xml

    <Context>
    	<Resource name ="jdbc/test" 
            auth = "Container" 
            type = "javax.sql.DataSource"
    	maxTotal = "100" 
            maxIdle = "30" 
            maxWaitMillis="10000" 
            username="root"
    	password="******" 
            driverClassName="com.mysql.jdbc.Driver" 
    	url="jdbc:mysql://localhost:3306/test" />
    </Context>    
    

    与数据库直连相比,连接池是从连接池中获取一个连接,然后进行增删改查操作。

    //lookup()中如果是非本地数据库直接/jdbc/test
    //如果是本地数据库需要java:comp/env/jdbc/test
    //jdbc/test应该与配置文件中的name一致
    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/test"); 
    
    Connection conn = ds.getConnection();
    Statement stmt = (Statement) conn.createStatement();
    			
    String sql;
    sql = "select name,password from a";
    ResultSet rs = stmt.executeQuery(sql);
    		
    while(rs.next()){
    		String name = rs.getString("name");
    		String password = rs.getString("password");
    		//System.out.println("name:"+name);
    		//System.out.println("password:"+password);
    }
    rs.close();
    stmt.close();
    conn.close();
    

      

    C3P0:

    参考了同学的知乎,挺受益的

    详见:https://zhuanlan.zhihu.com/p/28831891

      

  • 相关阅读:
    css之布局
    css之浮动
    白扯之聊聊我们的情怀
    Vue之指令
    Vue之vue.js声明式渲染
    AJAX经常遇到的那些问题
    HTTP之cookie技术
    正则表达式资料
    require.js资料
    AMD 和 CMD 的区别
  • 原文地址:https://www.cnblogs.com/jiangxiaobin1996/p/8302620.html
Copyright © 2011-2022 走看看