详解DriverManager,Connection,Statement,ResultSet,PerparedStatement各个对象

 DriverManager(驱动管理对象)


    1. 注册驱动
        * 告诉程序改使用哪一个数据库驱动jar

        

 //注册驱动
            Class.forName("com.mysql.jdbc.Driver");


          从本质上来说,这段代码不能说是注册驱动。因为,在Java中万物皆对象。要想创建驱动,需要用DriverManager对象来调用它里面的注册驱动的方法(registerDriver(Driver driver) )来实现这一功能。代码如下:     

DriverManager.registerDriver(Driver driver)

   
         通过观察我们发现, 这段代码似乎和上面写的注册驱动的代码并没有直接的联系。我们把com.mysql.jdbc.Driver这个类文件加载进内存,但是后面我们并没有用到这个Driver类,那我们写它有什么用嘞。这个时候,我们知道在Java中,有些代码会随着类的加载而自动执行,我们称之为静态代码块。所以我么可以猜测在“com.mysql.jdbc.Driver”类中一定会有静态代码块的存在。通过查看源码我们可以发现,在Driver类中真的存在这样一段静态代码块。
Driver类代码 :

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }
    //静态代码块
    static {
        try {
            DriverManager.registerDriver(new Driver());  //注册驱动
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }


在这段静态代码块里面我们找到了注册驱动的方法。
所以Class.forName("com.mysql.jdbc.Driver")这段代码是将Driver类的字节码文件加载进内存,与此同时Driver类中的静态代码块也会随着类的加载而去自动执行(且仅执行一次),完成注册驱动。所以说真正注册驱动的是DriverManager,只不过我们用Class.forName("com.mysql.jdbc.Driver")这种方式写起来比较简单。
     2. 获取数据库连接

     方法:
         static Connection getConnection(String url,String user,String password)
         参数:
             1. URL:指定连接路径
                   语法:jdbc:mysql://IP地址:端口号/数据库名称
                   细节:如果连接的是本机MySQL服务器,并且服务器的默认端口号是3306,则URL可简写为:jdbc:mysql:///数据库
             2. user:用户名(MySQL默认用户为root)
             3. password: 密码    

                                                                                                                      



Connection(数据库连接对象&

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值