代码编织梦想

package com.bjpowernode.jdbc;

import java.sql.*;

/*
注册驱动的第二种方式:类加载注册(常使用的方式)
    mysql厂家写的class com.mysql.jdbc.Driver类,该类中有一段静态代码块如下:
        class com.mysql.jdbc.Driver{
            static {
                try{
                    java.sql.DriverManager.registerDriver(new Driver());
                }catch(SQLException E){
                    throw new RuntimeException("can't register driver!");
                }
            }
        }
    我们前面学习过类中的静态代码块在类加载的时候执行,并且只执行一次;
    在学习反射的时候知道:Class.forName(类名)命令的执行会让括号中的类发生类加载,
    为此当执行Class.forName("com.mysql.jdbc.Driver");命令的时候"com.mysql.jdbc.Driver"类会发生类加载,
    该类的加载会让该类中的静态代码块执行,从而完成"注册驱动"。这就是第二种注册驱动的执行原理。
 */
public class 注册驱动的第二种方式 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            //1.注册驱动
            //如果是Oracle数据库:Class.forName("oracle.jdbc.driver.OracleDriver");
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","******");
            //3.获取数据库操作对象
            stmt = conn.createStatement();
            //4.执行sql语句
            String sql = "select a.ename as '员工',b.ename as '领导' from emp a left join emp b on a.mgr = b.empno";
            rs = stmt.executeQuery(sql);
            //5.处理查询结果集
            while(rs.next()){
                //根据查询结果的列名获取查询结果
                String ename = rs.getString("员工");
                String lname = rs.getString("领导");
                System.out.println(ename + "," + lname);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //6.释放资源
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/heliuerya/article/details/128746094

深入理解java类加载器(classloader)-爱代码爱编程

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/73413292 出自【zejian的博客】

类加载的三种方式_滴哩哩哩滴哩哩哩哒哒的博客-爱代码爱编程_加载类的三种方式

类加载分为动态加载和静态加载。动态加载是从外存储器中加载类,一般类加载机制分析的也是动态加载。而静态加载本质上是从内存中创建类的实例对象,此时类已经被加载到内存中。 一.静态加载 1. 通过new关键字来创建Test的实例对象。 二.动态加载 1.  通过Class.forName()来加载类,然后调用类的newInstance()方法

jvm之java类加载机制和类加载器(classloader)的详解_超级战斗王的博客-爱代码爱编程_jvm类加载

手把手写代码:三小时急速入门springboot—企业级微博项目实战--->csdn学院       当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。                     

(初学)JDBC及其加载驱动的两种方式-爱代码爱编程

1、 什么是JDBC?          JAVA DataBase Connectivity 简称JDBC ,是java连接访问数据库的一项技术。JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口。 2、JDBC工作原理          JDBC定义接口;          数据库厂商实现接口

加载mysql的jdbc驱动_JDBC驱动加载-爱代码爱编程

概述 一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用。基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了java.sql.Driver接口的类。如oracle的驱动类是 oracle.jdbc.driver.OracleDriver.class(

加载mysql驱动的语句_JDBC加载数据库驱动的方式-爱代码爱编程

JDBC作为数据库访问的规范接口,其中只是定义一些接口。具体的实现是由各个数据库厂商来完成。 一、重要的接口: 1.public interfaceDriver每个驱动程序类必须实现的接口。Java SQL 框架允许多个数据库驱动程序。每个驱动程序都应该提供一个实现 Driver 接口的类。DriverManager 会试着加载尽可能多的它可以找到

mysql 注册驱动_Mysql注册驱动三种方法 | 学步园-爱代码爱编程

考量了许久,决定把最近学的jdbc坐下总结,慢慢来吧,一天总结一小点,既然拖了那么久。 好,下面开始总结。(这里以mysql数据库为例) 首先就要说的是jdbc中注册驱动,首先导入对应的包,例如mysql-connector-java-5.0.8-bin.jar。 DiverManager.class里有个属性drivers,它实际上是一个vec

java加载mysql驱动_Java 加载数据库驱动(JDBC)-爱代码爱编程

前言 之前,对Class.forName("com.mysql.jdbc.Driver");这条动态加载JDBC驱动感觉很疑惑,故有了这篇短文。 一、使用JDBC连接MySQL 首先,来看一下正常使用Java操纵MySql的简单代码逻辑。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

java 手动加载数据库驱动_JAVA加载数据库驱动(JDBC)-爱代码爱编程

JAVA加载数据库驱动(JDBC) 前言 之前,对Class.forName("com.mysql.jdbc.Driver");这条动态加载JDBC驱动感觉很疑惑,故有了这篇短文。 一、使用JDBC连接MySQL 首先,来看一下正常使用Java操纵MySql的简单代码逻辑。 public static boolean connectionMy

计算机系统加载失败怎么回事,驱动加载失败怎么办,驱动加载失败的原因和解决方法...-爱代码爱编程

驱动加载失败一般都只有几种原因: 一种因为驱动程序本来就不完整。 第二种原因就像上面说的那样防火墙阻止驱动加载。可能是因为防火墙认为你安装的驱动带有攻击性,或者在防火墙询问你是否拒绝打开驱动的时候你选择了否。都会出现这样的问题!!! 解决方法,如果你觉得驱动是值得信懒的话,那你就先把防火墙关闭。(首先开始-控制面板-防火墙-防用-关闭防火墙)

SPI机制 JDBC中的应用 驱动类加载-爱代码爱编程

SPI机制 JDBC中的应用 驱动类加载 SPI(Service Provider Interface)机制SPI简单示例SPI之DriverManager1.原始方式2.SPI方式 SPI(Service Provider Interface)机制 SPI(Service Provider Interface),是JDK内置的一种 服务提供

mysql:增删改查语句大全-爱代码爱编程

一、插入 1、 法一 insert into 表名(列名1,列名2,……)values(值1,值2,……); insert into bbms.users (userid,username) values (‘123’,’张三一’); 2、 法二 insert into 表名 values (值1,值2,……)插入的顺序要跟表结构数据一样 3、