• JDBC


    JDBC
    什么是JDBC:
                是用于执行SQL语句的java API
    什么是数据库驱动
                驱动:两个设备(应用)之间通信的桥梁。
     
    入门: (步骤)
    1.首先创建数据库和表
    2.引入JAR包  
    3.代码实现:
    第一步:加载驱动     Class.forName("com.mysql.jdbc.Driver");
    第二步:获得连接    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库", "账户", "密码");
    第三步:基本操作    (获得对象--编写语句--执行语句)
                    获得对象:    createStatement()
                    编写语句:    String sql = "select * from user";
                    执行语句: ResultSet executeQuery(String sql);
                                  执行查询(执行select语句)。
                                  int executeUpate(String sql);    
                                  执行修改,添加,删除的SQL语句
                    遍历语句:    rs.next()                
    第四步:释放资源   rs.close();
    固定格式:
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库", "账户", "密码");
    @Test    
        public void demo1() throws Exception{
            // 1.加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2.获得连接
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web_test3", "root", "abc");
            //执行SQL
            // 3.1获得执行SQL语句的对象
            Statement statement = conn.createStatement();
            // 3.2编写SQL语句:
            String sql = "select * from user";
            // 3.3执行SQL:
            ResultSet rs = statement.executeQuery(sql);
            // 3.4遍历结果集:
            while(rs.next()){
                System.out.print(rs.getInt("id")+" ");
                System.out.print(rs.getString("username")+" ");
                System.out.print(rs.getString("password")+" ");
                System.out.print(rs.getString("nickname")+" ");
                System.out.print(rs.getInt("age"));
                System.out.println();
            }
            // 4.释放资源
            rs.close();
            statement.close();
            conn.close();
    连接池的概述:
            连接池是装有连接的容器,使用连接的话,可以从连接池中进行获取,使用完成之后将连接归还给连接池。
     
    连接池的原理:
    将原有的连接的close方法改为归还。
            现在要做的事情就是将原有的close方法的逻辑改为归还。(增强一个类中的方法)。
     
    如何增强一个类中的方法
                一种:采用继承的方式:
          继承这种增强是最简单,但是是有使用条件的:必须能够控制这个类的构造!!!
       
       二种:采用装饰者模式:
          装饰者模式使用条件:
           * 一、增强的类和被增强的类实现相同的接口
           * 二、在增强的类中获得被增强的类的引用
         
           三种 :  动态代理的方式 
    C3P0连接池的使用:    
                手动设置参数的方式:
    @Test
        /**
         * 手动设置参数的方式:
         */
        public void demo1(){
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try{
                // 获得连接:从连接池中获取:
                // 创建连接池:
                ComboPooledDataSource dataSource = new ComboPooledDataSource();
                // 设置连接参数:
                dataSource.setDriverClass("com.mysql.jdbc.Driver");
                dataSource.setJdbcUrl("jdbc:mysql:///web_test4");
                dataSource.setUser("root");
                dataSource.setPassword("abc");
                // 从连接池中获得连接:
                conn = dataSource.getConnection();
                // 编写SQL:
                String sql = "select * from account";
                // 预编译SQL:
                pstmt = conn.prepareStatement(sql);
                // 执行SQL:
                rs = pstmt.executeQuery();
                while(rs.next()){
                    System.out.println(rs.getInt("id")+" "+rs.getString("name")+" "+rs.getDouble("money"));
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtils.release(rs, pstmt, conn);
            }
        }
        采用配置文件的方式:
      配置:
     
  • 相关阅读:
    linux sed
    低版本的 opencv库的 vs2010 打开 高版本opencv
    跨,跨,跨,我的2013半年总结
    收集用户行为
    文章17周项目2--通过基准线结合(三个数字排序(指针参数))
    Ubuntu下一个python的BeautifulSoup和rsa安装方法---信息检索project2部分:微博爬行要求python包裹
    HTML_ul无序列表
    左右Cwnd::Create()功能出现afxwin1.inl line:21错误的解决方案
    rac下一个/tmp/bootstrap权限问题
    C 删除字符串1字符串2
  • 原文地址:https://www.cnblogs.com/govzhou/p/9523461.html
Copyright © 2020-2023  润新知