JDBC总结

一、JDBC概述

1、Java Data Base Connectivityjava数据库连接)

2、组成包:java.sql.*;javax.sql.*;这两个包都包含在了JDK中。

3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现

二、JDBC的编码步骤

1、把数据库的驱动加入到classpath

2、开发步骤:

 * 开发步骤:(必须记住的)

 * 1、注册驱动

 *  2、获取与数据库的链接

 *  3、得到代表发送和执行SQL语句的对象 Statement

 *  4、执行语句

 *  5、如果执行的是查询语句,就会有结果集,处理

 *  6、释放占用的资源

3、具体代码

三、JDBC中的主要接口或类

1、DriverManger类详解

1.1作用:a、注册驱动b、获取与数据库的链接

1.2改进注册驱动:(不能依赖具体的数据库驱动

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

缺点:严重依赖具体的驱动类;会导致驱动被注册2次。

替代方案:Class.forName("com.mysql.jdbc.Driver");

1.3获取与数据库的链接

l 方式一:(推荐)

DriverManager.getConnection("jdbc:mysql://localhost:3306/day17", "root", "sorry");

jdbc:mysql://localhost:3306/day17  SUN和数据库厂商定义的协议,具体的参考数据库的文档。

 jdbc:mysql:///day17 (链接本机的默认端口3306)= jdbc:mysql://localhost:3306/day17

u 方式二:

l 方式三:

2、Connection简介

所有的与数据库的交互都是基于链接的基础之上的,因此该对象相当重要。

Statement stmt = conn.createStatement():创建向数据库发送sqlstatement对象

3Statement详解

作用:代表SQL语句;向数据库发送并执行SQL语句

常用方法:

ResultSet executeQuery(String sql):只适合查询,返回的是查询的结果集

int executeUpdate(String sql):适合DML,或者没有返回结果集的DDL,返回的是影响的记录行数

boolean execute(String sql):执行任何的SQL语句,返回的不是成功与否。有结果集的返回true,没有返回false

4、ResultSet详解

作用:代表者查询语句的查询结果集

4.1遍历过程:有一个游标,如何遍历结果集,请看图

4.2如何获取列的数据

方式一:(推荐)

方式二:了解

4.3常用的方法:(改变游标位置的)

l boolean next():向后移动游标,同时返回该位置上有木有记录

l boolean previous():向前移动游标,同时返回该位置上有木有记录

l boolean absolute(int rowNum):定位到某行(第一行是1),同时返回该位置上有木有记录

l void beforeFirst():游标定位在第一行的前面

l void afterLast():游标定位在最后一行的后面

l last():直接定位到最后一行

小练习:取出最后一条记录

4.4遍历结果集打印到控制台木个鸟用,应该封装到JavaBean

5、释放占用的资源

按照打开的顺序,以相反的方向进行释放。

Connection要尽量晚的创建和尽量早的释放。

为了保障资源能被释放,应该放到finally代码块中

四、JDBC的编码规范和工具类的提取

1、编写配置文件:

2、抽取了工具类

3、以后代码的编写

五、JDBC进行CRUD

六、利用JDBC改写用户注册案例

1、更改JavaWeb项目的访问路径(由其是拷贝的整个项目)

2、SQL注入的问题

3、解决:使用PreparedStatement

七、JDBC中的PreparedStatement

1、特点和作用

a、指示SQL语句的预编译。提高数据库的执行效率

b、防止SQL注入。给数据库的已经不是字符串了

c、语句中的参数可以使用占位符(?)

结论:能用PreparedStatement就不要使用Statement

八、理解Dao解耦的好处(很关键)

九、客户信息管理系统

用之前所学完成一个对单表的CRUDJavaWeb项目

1、搭建开发环境:写配置文件,考jar

2、建立JavaBean,建立业务接口

3、编写业务实现和dao接口及dao实现

4、对业务层和dao层进行测试

5、表现层

  

原文地址:https://www.cnblogs.com/bwcx1375/p/7113392.html