zoukankan      html  css  js  c++  java
  • java----连接池C3p0使用的补充

    C3p0数据库的连接方式是目前市场场最为广泛的类型之一

    本篇主要你演示C3p0使用文件配置和不使用文件配置的两种操作方式

    #######使用文件配置

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    
    import com.dbutil.zyz.ConnLink;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    public class C3p0Demo1 {
    //首先演示下C3p0不使用配置文件的连接数据库的方式
            static ConnLink connlink=new ConnLink();
            static Connection conn=null;
            static PreparedStatement pstmt=null;
            public static void main(String[] args) throws SQLException {
            try {
                //总体步骤配置如下,可以作为模板使用
                
                //1.创建datasource
                ComboPooledDataSource dataSource=new ComboPooledDataSource();
                //2.设置连接数据的信息
                dataSource.setJdbcUrl("jdbc:mysql://localhost/test");
                dataSource.setDriverClass("com.mysql.jdbc.Driver");
                dataSource.setUser("root");
                dataSource.setPassword("root");
                
                //得到连接对象
                conn=dataSource.getConnection();
                String sql="insert into blank values(null,?,?)";
                pstmt=conn.prepareStatement(sql);
                pstmt.setString(1, "test");
                pstmt.setInt(2,2000);
                pstmt.executeUpdate();
                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                  connlink.relese(conn, pstmt);
                }
            }    
    }

    ########不使用文件配置

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    public class C3p0Demo2 {
          //下面开始演示使用配置文件的C3p0用法
            static ConnLink connlink=new ConnLink();
            static Connection conn=null;
            static PreparedStatement pstmt=null;
            public static void main(String[] args) throws SQLException {
                //就new了一个对象。在这种情况下c3p0会直接找到c3p0-config.xml文件
                //并且在c3p0-config.xml文件中默认的找到 default-config配置
                try {
                    ComboPooledDataSource dataSource=new ComboPooledDataSource();
                    
                    //2.得到连接对象
                    conn=dataSource.getConnection();
                    String sql="insert into blank values(null,?,?)";
                    pstmt=conn.prepareStatement(sql);
                    pstmt.setString(1, "root");
                    pstmt.setInt(2,20000);
                    pstmt.executeUpdate();
                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                    connlink.relese(conn, pstmt);
                }
            }
    }

    其中配置文件的信息如下(文件名称不可以更改)

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    
      <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost/test</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">20</property>
      </default-config>
      
      <named-config name="oracle"> 
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql:///web_07</property>
        <property name="user">root</property>
        <property name="password">123</property>
      </named-config>
      
    
    </c3p0-config>

    注意:代码中的释放调用代码如下

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class ConnLink {
    //数据库的连接部分
        public String jdbc_driver="com.mysql.jdbc.Driver";
        public String jdbc_conn="jdbc:mysql://localhost:3306/test";
        public String user="root";
        public String pass="root";
        
        //返回连接函数的部分
        public Connection getConn() throws SQLException, ClassNotFoundException{
            //1.注册驱动
            Class.forName(jdbc_driver);
            //2.获取连接
            Connection connection=DriverManager.getConnection(jdbc_conn,user,pass);
            return connection;
        }
        
        //释放连接资源的部分
        public void relese(Connection conn,PreparedStatement pstmt) throws SQLException{
            
            if(pstmt!=null) pstmt.close();
            if(conn!=null) conn.close();
        }
    }

    #####数据库变化如下

    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    childNodes.length和form.length的不同
    外部样式表声明的样式并不会进入style对象
    js之insertBefore(newElement,oldElement)
    文字不换行,超出部分显示成省略号
    animation和transition做动画的区别
    html中隐藏一个元素的方法
    css常见属性和属性值
    css选择器的优先级
    frameset怎么框架内部跳转
    form表单标签及属性的介绍
  • 原文地址:https://www.cnblogs.com/byczyz/p/11349052.html
Copyright © 2011-2022 走看看