JDBC是什么?
jdbc是一种java程序用于访问关系库的api.他允许程序员使用标准的sql语句来访问和操作关系型数据库.他是java EE平台上进行数据访问的基础.他提供了许多接口和类,使得java程序可以通过他们来访问和管理关系型数据库.
jdbc的优点
- 具有跨平台性,jdbc可以在各种操作系统和计算机体系上运行,因此java程序和不同类型的数据库进行交互
- JDBC是一个标准的API,提供了相同的访问关系数据库的方法,使得不同的JDBC驱动程序可以实现相同的接口,方便开发人员在不同的数据库之间进行切换
- 通过JDBC API访问数据库,可以防止直接在代码中包含SQL语句从而造成的SQL语句注入攻击
- JDBC还能提高高效的数据访问
jdbc的原理
- 加载数据库驱动:在java应用程序中,首先需要加载适当的数据库驱动程序
- 连接数据库通过getConnection()方法与数据库建立连接
- 创建操作对象:使用java中Statement对象或者PreparedStatement对象来执行SQL语句
- 通过上面两个对象执行SQL语句
- 处理查询结果:使用ResultSet对象来处理从数据库返回的查询结果
- 释放资源:通过close来释放资源(Connection,Statement,PreparedStatement三个对象)
JDBC中供程序员使用的类与接口
jar包的导入:
在根目录下创建一个lib的文件夹(如果有就不需要创建),之后将数据库的jar包放进去,然后右击该jar包,选中Add as library将其添加到项目的jar包库中.
DriverManager类:
//注册驱动并且加载驱动
DriverManager.registerDriver(new Driver())
Connection接口:
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3307/school?useunicode=true&characterEncoding=utf-8",
"root",
"123456"); //数据库服务器名称(地址)、端口号、数据库名称、用户名、密码须根据实际情况改变
该接口是为了将java项目对数据库进行对接,其中getConnection()中的参数分别是url,user和password,分别对应者数据库所在该计算机的地址,进入数据库的用户名和用户密码,当Connection对象被创建的时候,我们才能对数据进行sql操作.
对数据库的操作:
对数据库操作有两种方法:一种是通过Statement对象进行操作,一种是通过PrepareStatement对象进行操作.
Statement接口:
当只有一条sql语句的时候,可以使用Statement接口,因为他的运行速度要快于预处理,但是Statement接口不防止sql注入攻击,所以它的安全性相较于预处理是比较差的
PrepareStatement接口:
当我们需要处理多条sql语句,建议使用预处理,虽然他第一次调用时候所需要的成本要大于Statement接口,但是在后面的语句中,它不仅可以实现动态sql,还可以预防sql注入攻击.
ResultSet接口:
我们通过executeQuery()方法获得的结果集ResultSet,我们可以通过其中的next()方法来通过循环一直获得该表中的数据,在循环中,我们可以通过get***(String name)来获得其中的属性.