浅析JDBC

1.前言

        记得刚开始接触JDBC这项技术时,我花了好长的时间才通过Java代码成功连接了mysql数据库。觉得很神奇,可以使用java语言对mysql数据库完成增删改查,那时候可把自己乐坏了。后来的学习过程中,都是通过ORM框架完成的,所以,JDBC基本忘得差不多了。现在,自己想深入的了解数据库连接池,所以,先回忆回忆JDBC吧。

2.JDBC

2.1 什么JDBC?

        JDBC(Java Data Base Connectivity----java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

2.2 数据库驱动

        应用程序是不能直接使用数据库。应用程序必须加载相应的数据库驱动程序,通过数据库驱动程序来与数据库进行交互。JDBC只是提供一种规范,由对应的数据库厂商对此进行具体的实现(数据库驱动程序)
浅析JDBC

2.3 如何使用JDBC?

        使用JDBC的步骤:

  1. 加载JDBC驱动程序
  2. 建立数据库连接,获取Connection对象
  3. 创建执行SQL语句的PreparedStatement/Statement对象
  4. 处理执行结果ResultSet对象
  5. 释放资源

动动手,可以进一步加深印象。具体案例,可参考下面链接:

JDBC详细介绍

2.4 常用接口

Driver接口

        Driver接口由数据库厂家提供,它是来加载特定厂商的数据库驱动程序。这是连接数据库的必要准备工作。而不同的数据库,加载的方法不同。如:
加载Mysql数据库驱动程序:Class.forName(“com.mysql.jdbc.Driver”)

Connection接口

        Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。
连接Mysql数据库:Connection conn = DriverManager.getConnection(“jdbc:mysql://host:port/database”, “user”, “password”);

Statement接口

        用于执行静态SQL语句并返回它所生成结果的对象。

三种Statement类:

  • Statement:由createStatement创建,用于发送简单的SQL语句(不带参数)。
  • PreparedStatement :继承自Statement接口,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象比Statement对象的效率更高,并且可以防止SQL注入,所以我们一般都使用PreparedStatement。
  • CallableStatement:继承自PreparedStatement接口,用于调用存储过程。

为什么PreparedStatement对象可以防止sql注入

ResultSet接口

返回结果集

【参考资料】: