1.JDBC 介绍
JDBC (Java Database Connectivity) 是Sun 公司给出的一个基于Java 语言访问关系数据库的接口标准,
这个标准基于X/Open SQL Call Level Interface ,并与SQL 92 入门级标准兼容。JDBC 制定了统一的访问各
类关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。
oracle的两类驱动:Thin驱动和OCI驱动
使用Thin 驱动的JDBC URL 为:
jdbc:oracle:thin:[user/password]@[host][:port]:SID 或
jdbc:oracle:thin:[user/password]@//[host][:port]/SID
2.java常用的类
2.1Connection接口—就像一根怼着数据库的管道
Connection常用的方法2.2Statement接口
- 2.2.1 Statement 实例用于在已经建立连接的基础上向数据库发送SQL 语句
- 2.2.2 PreparedStatment
对于JDBC,可以通过Connection 对象的prepareStatement(String sql)方法对SQL 语
句进行编译预处理,生成数据库底层的内部命令,并将该命令封装在PreparedStatement 对象中。
【说明】Statement不安全,会产生SQL注入攻击,因此经常用PreparedStatement- 2.2.3CallableStatement接口
CallableStatement 接口继承自PreparedStatement,用于调用存储子程序。
CallableStatement cs1 = con.prepareCall(“{CALL Abc()}”);// 调用无参存储过程
CallableStatement cs2 = con.prepareCall(“{CALL Abc(?, ?, …,?)}”); // 调用有参存储过程
//调用存储函数
CallableStatement cs4 = con.prepareCall(“{? = CALL Abc(?,?,…,?)}”);2.3ReSultSet接口
ResultSet 接口类似于一张数据表,用来暂时存放数据库查询操作所获得的结果集
3.加载数据库驱动
【说明】不同的数据库所需要加载的数据库驱动包是不一样的
- 3.1加载数据库驱动的两种形式
- 方式一:调用Class类的静态方法forName();
方式二:采用Oracle数据源的方式
通过new OracleDataSource()对象获取oracle数据源,这也是Oracle公司推荐的
4.创建数据库连接(如上所示)Connection类
在进行数据库操作时,只需要在第一次访问数据库时加载数据库驱动。以后每次访问数据时,创建一个Connection 对象后即可执行操作数据库的SQL 语句
4.1通过数据驱动管理累DriverManager
4.2通过数据源获取
5.发送SQL语句
1.Statement对象
2.PreparedStatement
3.CallableStatement
6.查询获取结果集(ResultSet类)
ResultSet 对象具有指向当前数据行的光标。最初,光标被置于第一行之前,可以通过该对象的next()方法将光标移动到下一行;如果ResultSet 对象没有下一行时,则next()方法返回false。所以,可以在while循环中使用next()方法迭代结果集。
7.关闭连接
一定要从后往前释放,对比创建的过程就很容易理解
resultSet.close();
Statement.close();
Connection.close();
【补充内容】
关于SQL语句的一些基本数据查询以及数据更新语句
○ SELECT (字段名……) FROM 表名 WHERE condition;
注:如果要查询所有的则 字段名为“*”
模糊查询:用“%”代替0个或者多个字符,“_”代替一个字符
屏幕剪辑的捕获时间: 2018/5/27 23:41
select * from student where sno like '9512%'");
○ INSERT INTO 表名(字段名) VALUES (values1,values2…….);
○ UPDATE 表名 SET 字段名= 更新的字段名 WHERE condition;
○ DELETE FROM TABLE WHERE condition;
修改表的结构
○ ALTER TABLE table_name
ADD column_name datatype; //增加列
//删除表的一列
ALTER TABLE table_name
DROP COLUMN column_name;
//修改数据类型
ALTER TABLE table_name
ALTER COLUMN column_name datatype;