A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵小光 初级黑马   /  2017-11-26 23:08  /  692 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

重点 C3P0
配置环境变量,是为了让程序在任意环境下执行
操作系统
alt+shift+r选中快速改名字
Ctrl+2+L快速生成接收对象
alt+shift+z快速生成try/catch
垃圾回收器        第二次检查为null被回收
127.0.0.1 = localhost 本机IP
启动本地127.0.0.1:8080/文件夹名/indext.html
<textarea>中间给值</textarea>
JUnit 4  Test测试,
注意:类名不能用Text,方法不能有返回值,用public void修饰,不能有参数必须是空参

JAVA_HOME  64

Eclipse  64
项目JRE 可以给项目指定一个JRE

使用JDBC进行CRUR的操作
JDBC:Java DateBase Connectivity,   Java数据库的连接,是SUN公司统一提供的一套接口规范(JDBC),数据库生产商提供实现
驱动:两个硬件设备之间通信的桥梁
JDBC开发步骤
注册驱动
获得连接
获得执行SQL语句对象
释放资源
总结JDBC的API        为什么使用批处理?批量插入,批量删除修改                效率
Connection
创建执行SQL对象
进行事务管理
Statement
执行SQL语句
执行批处理        批量插入,批量删除修改
一批SQL一起执行
addBatch()
clearBatch()
executeBatch()
ResultSet
获得结果集中的数据
getxxx(int idx);                通过列号
getxxx(String name);通过列名,一般使用这个
默认情况下:next();
正常情况下结果集只能向下
连接池
SUN公司提供的连接池接口(javax.sql.DateSource)
增强Connection的close方法
增强Java类中的某个方法???
1  继承                       
能够控制这个类的构造的时候,才可以使用继承
2  装饰者模式
包装的对象和被包装的对象都要实现相同的接口
包装的对象中需要获得到被包装对象的引用
缺点:如果接口发的方法比较多,增强其中的某个方法,其他的功能的方法需要原有调用
1 定义一个被包装类的引用
2 通过构造方法对引用赋值
3 改造要升级的方法  
3  动态代理的方式
被增强的对象实现接口就可以

常见的开源的数据库连接池
DBCP       
C3P0(重点) 可以对空闲连接进行回收        Hibernate,Spring支持C3P0               
Tomcat        内置连接池

DBCP连接池的使用
1 引入DBCP连接池的jar包
2  编写DBCP代码
手动设置参数
配置文件设置参数
DBCP连接池的使用】
第一步:引入DBCP连接池的jar.
第二步:编写DBCP代码:
    * 手动设置参数:
    * 配置文件设置参数:
DBCP连接池的使用】
    @Test
    /**
     * 手动方式:
     */
    public void demo1(){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///web_07");
        dataSource.setUsername("root");
        dataSource.setPassword("123");
        try{
            // 获得连接:
            conn = dataSource.getConnection();
            // 编写SQL:
            String sql = "select * from category";
            // 预编译SQL:
            stmt = conn.prepareStatement(sql);
            // 执行SQL:
            rs = stmt.executeQuery();
            while(rs.next()){
                System.out.println(rs.getInt("cid")+"   "+rs.getString("cname"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            JDBCUtils.release(rs,stmt, conn);
        }
    }

    @Test
    /**
     * 配置文件方式
     */
    public void demo2(){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        Properties properties = new Properties();

        try{
            properties.load(new FileInputStream("src/dbcpconfig.properties"));
            DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
            // 获得连接:
            conn = dataSource.getConnection();
            // 编写SQL:
            String sql = "select * from category";
            // 预编译SQL:
            stmt = conn.prepareStatement(sql);
            // 执行SQL:
            rs = stmt.executeQuery();
            while(rs.next()){
                System.out.println(rs.getInt("cid")+"   "+rs.getString("cname"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            JDBCUtils.release(rs,stmt, conn);
        }
    }
C3P0连接池的使用:                ComboPooledDataSource(核心类)
1 引入C3P0jar包
2 编写C3P0代码
手动设置参数
配置文件设置参数
C3P0改造类



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马