day15_jdbc

来源:互联网 发布:一面软件 编辑:程序博客网 时间:2024/06/07 16:05

回顾

一、SQL语句
二、常用的数据库:Oracle DB2 MySQL
三、SQL组成

四、DDL:数据定义语言
CREATE ALTER DROP TRUNCATE

五、DML:数据操作语言
INSERT UPDATE DELETE

六、单表查询

七、数据完整性约束
1、实体完整性
2、域完整性
3、参照完整性:外键约束
一对多
多对多
一对一

八、多表的查询
1、交叉链接:cross join
2、内连接:inner join
3、外连接:left|right [outer] join
4、子查询

九、分组查询
SUM AVG COUNT
GROUP BY [HAVING…]

十、MySQL的数据库备份与恢复

JDBC

一、JDBC简介

JDBC:Java DataBase Connectivity,是SUN推出的操作数据库的规范。
JDBC和数据库驱动:规范和实现的关系。

JDBC:JDK中。java.sql.;javax.sql.;
驱动:去数据库厂商的网站下载

二、JDBC的开发步骤

0、搭建开发环境:把数据库驱动的jar包加入到构建路径中。
1、注册驱动
2、获取与数据库的链接
3、创建代表SQL语句的对象
4、执行SQL语句
5、如果是查询语句:返回结果集。
6、释放资源

这里写图片描述

三、JDBC规范中常用的接口或类

1、DriverManager

作用:
a、注册驱动

方式一:DriverManager.registerDriver(new com.mysql.jdbc.Driver());
缺点:
1、严重依赖具体的数据库驱动
2、导致数据驱动注册2遍

方式二:(推荐)
Class.forName(“com.mysql.jdbc.Driver”);

b、获取与数据库的链接

方式一:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day15", "root", "sorry");

String url:JDBC与数据库厂商的协议。具体参考数据库的文档。

这里写图片描述

Oraclejdbc:oracle:thin:@localhost:1521:orcl 瘦客户端链接方式jdbc:oracle:client:@localhost:1521:orcl 客户端链接方式,高效

方式二:

这里写图片描述

方式三:

Connection conn = DriverManager.getConnection("jdbc:mysql:///day15?user=root&password=sorry");

2、Connection

作用:所有与数据库的交互都是基于链接的。
Statement createStatement():创建代表SQL语句的对象

3、Statement

作用:代表SQL语句对象

常用方法:
ResultSet executeQuery(String sql):执行查询,返回结果集。
int executeUpdate(String sql):执行DML语句。返回的是SQL语句影响到的记录条数。

这里写图片描述

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

4、ResultSet

作用:封装了结果集。

这里写图片描述

数据库类型和Java类型的对应关系:

这里写图片描述

常用的方法:
boolean next():向下移动。返回有没有记录
boolean provious():向上移动。返回有没有记录
boolean absolute(int row):定位。返回有没有记录。看第2条,写2.
void beforeFirst():移动到第一条记录的前面。默认位置
void afterLast():移动到最后一条记录的后面。

5、释放资源

四、抽取JDBC的工具类

五、JDBC进行单表的CRUD

六、改写用户注册和登录案例

1、自定义Dao运行时异常
2、利用工厂模式对业务处理层和Dao层进行解耦
3、问题:

添加或修改数据时,dao实现写的sql语句不是很方便。
执行的效率不是很高
存在SQL注入的问题

七、PreparedStatement接口

原则:能用PreparedStatement就不要使用Statement

优点:
参数使用占位符(?)替代
预编SQL语句,执行效率高
不存在SQL注入问题

这里写图片描述

ResultSet的游标

这里写图片描述

八、单表案例:客户信息管理Web工程

0 0