zoukankan      html  css  js  c++  java
  • 连接池技术(30)

    1、共享连接 Connection。以优化性能。对于多并发的时候呢,优势更为明显,好比线程池技术。

    2、常见连接池:DBCP (apache) , C3P0。  javax.sql.datasource。

    3、dbcp和pool的jar包实现高效的连接池。

    4、编写工具类

    //  BasicDataSource类  是  DataSource接口的实现类

    //  DataSource接口,它是java与每种数据库连接池 连接的规范标准

     

    public class JDBCUtils {
        public static final String DRIVER = "com.mysql.jdbc.Driver";
        public static final String URL = "jdbc:mysql://localhost:3306/daydb";
        public static final String USERNAME = "root";
        public static final String PASSWORD = "root";
        /*
         * 创建连接池BasicDataSource
         */
        public static BasicDataSource dataSource = new BasicDataSource();
        //静态代码块
        static {
            //对连接池对象 进行基本的配置
            dataSource.setDriverClassName(DRIVER); // 这是要连接的数据库的驱动
            dataSource.setUrl(URL); //指定要连接的数据库地址
            dataSource.setUsername(USERNAME); //指定要连接数据的用户名
            dataSource.setPassword(PASSWORD); //指定要连接数据的密码
        }
        /*
         * 返回连接池对象
         */
        public static DataSource getDataSource(){
            return dataSource;
        }
    }

    5、 工具类的使用

    建立数据库连接的代码中,要用try...catch来抛运行时期异常,连接时期有异常时候那么接下来的操作都跑不了,所以没必要用throws SQLException

    public class Demo {
        // 插入功能 
        @Test
        public void insert(){
            try {
                //获取一个用来执行SQL语句的对象   QueryRunner
                QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
    String sql = "INSERT INTO zhangwu(name,money,parent) VALUES(?,?,?)";
                Object[] params = {"股票收入", 5500, "收入"};    
                 int line = qr.update(sql,params);
                //结果集处理
                System.out.println("line = " + line);
                
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        
        //删除功能
        @Test
        public void delete(){
            try {
                //创建一个QueryRunner对象,用来完成SQL语句的执行
                QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
                //执行SQL语句
                String sql = "DELETE FROM zhangwu WHERE name = ?";
                Object[] params = {"股票收入"};
                int line = qr.update(sql, params);
                //结果集的处理
                System.out.println("line="+line);
                
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        
        //更新功能
        @Test
        public void update(){
            try {
                //创建一个QueryRunner对象,用来完成SQL语句的执行
                QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
                //执行SQL语句
                String sql = "UPDATE zhangwu SET money = money+1000 WHERE name=?";
                Object[] params = {"股票收入"};
                int line = qr.update(sql, params);
                //结果集的处理
                System.out.println("line="+line);
                
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        
        //查询功能,将结果集中第一条记录封装到一个指定的javaBean中。
        @Test
        public void search(){
            try{
                //获取QueryRunner 
                QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
                //执行SQL语句
                String sql = "SELECT * FROM zhangwu";
                Object[] params = {};
                Product p = qr.query(sql, new BeanHandler<Product>(Product.class), params);
                //结果集处理
                System.out.println(p);
                
            } catch(SQLException e){
                throw new RuntimeException(e);
            }
        }
    }
  • 相关阅读:
    POJ 3259 Wormholes【BellmanFord】
    POJ 2960 SNim【SG函数的应用】
    ZOJ 3578 Matrixdp水题
    HDU 2897 邂逅明下【bash博弈】
    BellmanFord 算法及其优化【转】
    【转】几个Java的网络爬虫
    thinkphp 反字符 去标签 自动加点 去换行 截取字符串 冰糖
    php 二维数组转 json文本 (jquery datagrid 数据格式) 冰糖
    PHP 汉字转拼音(首拼音,所有拼音) 冰糖
    设为首页与加入收藏 兼容firefox 冰糖
  • 原文地址:https://www.cnblogs.com/ivan5277/p/10093324.html
Copyright © 2011-2022 走看看