jdbc
java database connectivity
java与数据库的连接
面向接口编程
java制定标准,各各数据库厂商实现接口.
java中提供的接口在java.sql.*包下
常用接口如下:
接口名称 | 作用 |
---|---|
java.sql.Connection | 连接 |
java,sql,Statement | 静态处理块 |
java.sql.PrepardeStatement | 预处理块 |
java.sql.ResulttSet | 结果集 |
java.sql.ResultSetDetaData | 结果集元信息 |
oracle厂商实现接口:
在安装路径下,视安装路径而定
jdbc使用步骤
- 加载驱动
- 建立连接(数据库 URL\用户名\密码)
- 创建处理块 Statement PreparedStarement
- 执行:
- 分析结果:ddl–>没有异常 dml–>0 select–>分析结果集
处理块
静态处理块 Statement
作为java执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的sql语句 用于执行不带参数的简单sql语句
创建
连接.Connection.createStatement()
执行
ddl execute 通常不会再代码中执行
dml executeUpdate
select executeQuery(select)
特点:
处理不变的静态的sql语句
优点:直接查看sql,方便处理错误
缺点:性能不高,拼接sql 麻烦 可能存在恶意注入
预处理块 PreparedStatement
继承了Statement 并与其有所不同 PreparedStatement已经预编译过,所以执行速度要快于Statement对象 多次执行的sql语句可以使用它来提高效率
创建
连接.PerpareStatement(sql)
执行
sql中存在?,先填充参数再执行
state.setString(1,字段); //对sql中的?的填充
ddl -->execute()
dml -->executeUpdate()
select -->executeQuery()
特点
处理不变的静态的sql语句|可变的sql语句|带?的sql语句
优点:性能高,方便编写sql 不存在sql注入 安全
缺点:不能直接打印sql语句 不方便处理错误