原生JDBC简述及实现
使用JDBC链接数据库
简述开发链接步骤
- 一 通过java反射 Class.forName()加载驱动
- 二 通过DriverManager创建链接connection(提供数据库URL,user,password)
- 三 通过链接connection创建实例
- 四 执行sql,获取结果集ResultSet
- 五 通过结果集获取数据
- 六 资源回收,关闭结果集,实例,链接。
缺点:
jdbc底层没有连接池,操作数据库需要频繁的创建和关联链接,需要耗费大量的资源,在java中项目一旦需要修改sql,就需要整体编译不利于维护。
返回的结果集也需要硬编码。
注意事项:在操作中可能出现sql注入的问题
sql注入:在应用程序中通过插入恶意sql篡改数据或获取未经授权查询的数据,是非常大的安全漏洞。
解决方法:
注:代码示例见文章末尾
PreparedStatement statement = connection.prepareStatement(sql);
为什么能解决sql注入?
因为PreparedStatement对sql进行了预编译,对参数位置使用了占位符,只需要填充即可,而Statement只是对sql进行拼接,并且每次都需要编译,效率低下。
代码示例
代码编写之前需要引入jar
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
以下为实现代码
package com.chenmo.study;
import java.sql.