Java之JDBC初浅理解

news/2024/5/19 0:49:33 标签: JDBC, JDBC是什么, jdbc驱动, 注册jdbc驱动

什么是JDBC?
JDBC(Java DataBase Connectivity)就是Java数据库连接。通俗点讲就是通过java语言来操作数据库的增删该改查。
JDBC原理
最开始的时候sun公司想做成一个万能连接数据库的api,但是在制作工程中发现数据库厂商很多,而且也没有一个规范的标准。而后sun公司与各大数据库厂商沟通,由sun公司制定一个标准(术语上讲为接口),然后由各大数据库厂商去实现接口的内容,也就是我们现在说的驱动(实际上就是各个数据库厂商自己写的软件)
JDBC核心类(接口)
JDBC中的核心类有:DriverManager、Connection、Statement和ResaultSet!
A:注册驱动:这可以让JDBC知道要使用的哪个驱动
B:获取Connection:作用是建立在数据库与java语言之间的一座桥梁
C:connection可以用来获取statement对象,而statement是用来向数据库发送sql语句的,一般称为发送器
D:ResultSet executrQuery(String sql) 是执行查询语句,并返回一张数据表,其中ResultSet.next使行光标移动到下一行,并返回一个boolean类型的值检测是否存在,而后我们获取行中列的值采用.getXXX的方法

注解下:.next()方法中游标指示的行号,其实就是指示一个对象数据


java加载数据库的两种方式:
1、单一重复加载法:
通过java的驱动管理器DriverManager的注册方法进行方法注册   DriverManager.registerDriver(new com.mysql.jdbc.Driver());
但是在接口中每家数据库厂商在实现接口的过程中,已经对自己的驱动实现了注册,在看到源码之后你不难发现
//mysql中的驱动类继承了注册驱动同时实现了java的接口
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    static {
    try {
        java.sql.DriverManager.registerDriver(new Driver());
            } catch (SQLException E) {
                throw new RuntimeException("Can't register driver!");
            }
        } …
    …
}
2、直接加载mysql已经写好的注册驱动方法
static 块级 存放在方法区的常量池中,在类被加载的时候静态块就会先运行  这里注解下:类中的运行优先级别是:静态代码块>构造代码块(类被实例化的时候,后面同)>构造函数>调用方法过程
Class.forname:加载类的方法 eg:Class.forname("path_class_name");

3、驱动管理器 DriverManger
DriverManager.getConnection(url,username,password); 返回一个连接对象Connection
url由 三个部分组成 jdbc:mysql://localhost:3306/mydb1
其中jdbc是固定写法,指定jdbc驱动链接的是mysql,mysql的地址是localhost,端口为3306,数据库是mydb1
 


http://www.niftyadmin.cn/n/864451.html

相关文章

[java]static关键字的四种用法

原文地址:https://www.cnblogs.com/dotgua/p/6354151.html?utm_sourceitdadao&utm_mediumreferral 在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用&a…

继承和构造函数笔记

package com.box;public class Box {double width;double height;double depth;//封装类成员变量Box(Box ob){widthob.width;heightob.height;depthob.depth;System.out.println("我是传递一个对象的构造函数");}Box(double w,double h,double d){widthw;heighth;dep…

【Java】静态和非静态的区别

还是老生常谈JVM内存模型的问题,也是我一直深究(浅显)的问题,这里我们单一说一下用静态修饰的内存,前面的篇章有具体讲过jvm内存分为:方法区、堆、栈、程序计数器 但是目前我们只要认识的是方法区, 堆和栈 方法区:是各个线程共享的…

【Java】静态的特点以及注意事项?

上一篇文章我们讲了静态和非静态的区别,这里我们对静态做个补充 1、静态在程序编译一次后,其值就会一直存放在方法区中,直至线程结束。并且每次调用对象的时候,直接可以通过类名的加点的方式引出,而不必开辟新的内存空间&#xff…

【Java】之继承总结

1.静态和非静态的区别。说一下内存。 静态:用static修饰的成员变量,被所有实例化的对象共享其值; 内存: 静态成员变量存放的地址在方法区的常量池中,其中方法区、堆的值会被共享,其生命周期随着类的加载…

Java编译期和运行期

原文转至:https://blog.csdn.net/qq_26225663/article/details/79593264 编译期: 是指把源码交给编译器编译成计算机可以执行的文件的过程.在Java中也就是把Java代码编成class文件的过程.编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只…

【Java】继承、接口、抽象类、多态之间的关系和区别 【一】

时间对于一个追梦的人来说就是黄金,没有什么能阻挡前行的脚步。--致所有和我一样追逐明天太阳的人接口的理解:接口是对动作的抽象说动作还不如说功能 抽象类理解:抽象类是对根源的抽象 多态的理解:类加载运行时父类的引用指向子…

【Java】继承、接口、抽象类、多态之间的关系和区别 【二】

多态:运行时引用指向子元素的实例对象【jvm内存模型很重要,也是入门的基础】 接着上面继续理解,创建一个老师类 package com.physical;public class Teacher extends Person{String profession;int teacherid;//一个无参的构造器Teacher()…