首先了解下什么是jdbc?
jdbc(Java Data Base Conectivity)Java数据库连接,说白了就是开发Java语言的SUN公司定义的一套接口规范,为什么要定义这一套规范呢?原因很简单,市面上有好多种数据库,各自有自己的特点,这样开发的过程中Java语言需要和不同的数据库连接,这样实现起来比较复杂,增加了难度,所以SUN公司就开发出一套接口,让不同的数据库去实现这个接口,这样不同的数据库都通用这一套规范,这样java语言就可以和各个数据库进行连接,这就是出现jdbc的原因.
jdbc的开发步骤
1.注册驱动
该步骤是通过反射来获取Driver类的字节码对象,通过看源码得知其内部是注册了驱动,在1.5以后的驱动jar包中已经帮我们做了该步骤,所以可以省略,但是建议不要省略.
2.创建连接对象
这一步是通过DriverManager这个类来创建一个连接对象
3.获取执行SQL的预执行对象
Connection接口下有三个获取执行对象的方法
1)Statement createStatement() 返回的是一个Statement对象,他不能防止SQL注入
2)CallableStatement prepareCall(String sql) 返回的是一个CallableStatement对象,他可一个执行一个数据的存储过程
3)PreparedStatement prepareStatement(String sql)返回预执行对象,通过将SQL语句参数用"?"进行占位,将参数通过键值对的方式,保存到 PreparedStatement对象中,可以防止SQL注入,而且开发中也只会用到这个.
4.写SQL语句
通常包含增删改查CRUD四种
5.执行SQL语句
public boolean execute()
可以执行任何sql语句,通常用来执行增删改的操作,如果第一个结果是ResultSet对象,则返回true
;如果第一个结果是更新计数或者没有结果,则返回false
ResultSet executeQuery()
包含该查询生成的数据的ResultSet对象; 不会返回null
public int executeQuery()
该方法执行的语句必须是一个sql数据操作语言(Data Manipulation Language, DML)语句,比如 INSET、update、delete语句;或者无返回内容的SQL语句,比如 DDL语句.
6.处理返回结果
一般将返回的结果,进行一些逻辑判断,将结果响应到客户端,更新前端ui
7.关闭连接对象,释放资源
查询完数据库一定要关闭Connection、PreparedStatement、resultSet等对象,否则会造成内存泄漏