zoukankan      html  css  js  c++  java
  • JDBC

      下面贴出一段规规矩矩的Java连接数据库的代码:

           Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery("select * from student");while(rs.next()){
                Object o1=rs.getObject(1);
                Object o2=rs.getObject(2);
                p(o1+","+o2);
            }
            rs.close();
            st.close();
            conn.close();

      这是Java连接数据库的一整套代码,大家都不会陌生,我曾经以为背过这些就算会连接数据库了,我发现自己很错。

      其实我只是在背别人的API而已,没有丝毫长进。毛主席说过一句话,在战略上要藐视敌人,在战术上要重视敌人,在“战略”上,我要藐视它,我在背API,毫无用处,而我却以此为荣。在“战术”上重视它,存在即有它的道理,我背过了熟练了,只是提高了我的开发速度,和我的成长没有半毛钱关系,我如果数年如一日的只会熟练地掌握它,那我就废啦。

      而我要真正学习的是它背后的思想,背后的架构设计,它是如何做到可扩展性的?它的架构设计到底是咋样的?。

     

    加载驱动程序

      先给出硬件上驱动的含义,驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。

      所以,这里将MySQL数据库比作硬件设备,Java Application要和它进行通信,MySQL数据库厂商必须要编写满足Java定义的规范的“驱动程序”,到时Java会调用驱动程序运行程序,两者正常工作。

      而Java定义的规范就是java.sql.Driver接口,而MySQL数据库厂商提供的驱动程序com.mysql.jdbc.Driver实现了该接口。总的来说,Java提供规范,也就是接口,MySQL数据库厂商提供具体针对MySQL的实现,这样,利用面向对象的三大特性之一多态,实现了系统了可扩展性。如果客户要求使用Oracle数据库,这样系统架构也不会改变。

     

    对static静态变量的认识

       com.mysql.jdbc.Driver里面的静态代码块的具体实现:

    java.sql.DriverManager.registerDriver(new Driver());

       而我们得到连接时,直接使用DriverManager.getConnection(参数)得到了。这是为啥呢?

      因为static静态变量被该类的所有对象所共享,所以我们在任何地方调用DriverManager.getConnection(参数)都可以得到原来注册的Driver。

      所谓的注册不过就是添加到驱动管理类中的静态成员变量,注册之后,在任何地方使用类名或者对象就能获得该变量中的Driver,然后在进行操作。

      总结,这里利用了static静态变量的全局共享的特点。

    Java接口及MySQL实现类





    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    python编程学习进度七
    python编程学习进度六
    SOA——2020.5.15
    代码大全001/
    Refined Architecture阶段——细化架构
    架构即未来003(摘自网络)
    我对外包公司的小小看法
    架构即未来002
    每日日报
    架构即未来阅读笔记001
  • 原文地址:https://www.cnblogs.com/kingofkai/p/5843459.html
Copyright © 2011-2022 走看看