天天看点

JDBC的理解以及粗略介绍

@TOC数据库连接以及连接池的一些微小的理解《第一部分》

数据库连接从最基本的JDBC开始:

什么是JDBC?

1 】JDBC全称java database Connectivity 就是java数据库连接,是一种用于执行SQL的java的API。

2】 他是由一组用java语言编写的类和接口组成。

3】他提供了一种基准,在此基础上可以编写更高级的工具和接口。

4】最直接的一点就是使数据库开发人员能够编写数据库应用程序。

JDBC的创建方式?

1】首先加载驱动:

Class.forName("com.mysql.cj.jdbc.Driver");
           

这里的参数是

JDBC的理解以及粗略介绍

如图所示的jar包中的类,通过反射的方式,不用关心是否初始化,只需要一个字符串就可以获取字节码文件,并且创建对象。获取其变量,方法,参数,修饰符,构造器 。即使其私有化也是可以获取。

图示的jar包中的类就是数据库厂商提供给我们的驱动类,我们获取驱动类并且使用其提供的方法等

2】创建连接

String url="jdbc:mysql://localhost:3306/java?serverTimezone=UTC";
String user = "root";
String password = "root";
Connection connection =
 DriverManager.getConnection(url,user,password);
           

在参数中

1 jdbc【这是jdbc连接的声明】

2 mysql【这是当前数据库使用的声明】

3 localhost:3306【IP地址+端口号】

4 java【是数据库的名】

5 ?serverTimezone=UTC【如果不加上这个有时会报错,主要原因是数据库在开发的时候地区不在亚洲地区,所以系统默认的时间是美洲时区的时间,比中国时间差8个小时,系统会报错,因此需要手动的声明】

DriverManager:是一个驱动管理类;

而在JDBC的规范中要求Driver类必须在DriverManager的使用前注册自己,注册过程在Driver的静态代码块已经实现了,即在类被加载的时候就会完成像驱动管理器的注册。

见Driver的源代码

public class Driver extends NonRegisteringDriver implements java.sql.Driver{
    static{
        try{
            java.sql.DriverManager.registerDriver(new Driver());
        }catch(SQLException e){
            throw nrew RuntimeException("Can't register driver")
        }
    }
}
           

3】创建SQL编译器

Statement statement = connection,CreatStatement();
           

编译器分为两种,一个是statement另外一个是preparedstatement,其中preparedstatement是预编译器,使用它可以在一定程度上防止SQL注入。

4】开始编译SQL

String sql = "sql语句";
statement.execute(sql)//**第一种**
statement.executeupdate(sql);//**第二种**
statement.executequery(sql);//**第三种**
           

第一种可以执行增删改查,返回值为true和false,当返回值为true是说明执行的是查找操作,当返回值是false时说明执行的增删改操作。

第二种可以执行增删改查,返回的是int类型,当执行数值为0的时候说明执行失败,当不是0的时候说明执行成功,返回的是受影响的行数。

第三种可以执行查询操作,返回值是一个resultset集合

5】关闭流

statement.colse();
connection.close();



   总结:以上为对JDBC的个人的一点点小的理解,写下来希望能让自己理解更好,加油。如有错误希望各位哥哥姐姐批评指正。