浅析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只是提供一种规范,由对应的数据库厂商对此进行具体的实现(数据库驱动程序)
2.3 如何使用JDBC?
使用JDBC的步骤:
- 加载JDBC驱动程序
- 建立数据库连接,获取Connection对象
- 创建执行SQL语句的PreparedStatement/Statement对象
- 处理执行结果ResultSet对象
- 释放资源
动动手,可以进一步加深印象。具体案例,可参考下面链接:
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接口
返回结果集
【参考资料】: