JDBC 基础知识点总结

JDBC


JDBC(Java DataBase Connection) java 访问的数据的技术,也称驱动。

一、JDBC的发展

1.发展

··JAVA- ODBC-DB 桥连

JAVA- 本地clientAPI-DB 本地clientAPI 调用

JAVA-DB   直连

JAVA-server配置DB信息-DB   连接池

2.JDBC包含的内容

两部分内容:

1 接口部分:sun公司提供,在JDKjava.sql.* javax.sql.* 包中;

2)实现部分:数据库厂家提供,去官网下载

Ojdbc5.jar----JDK6.0

Ojdbc6.jar----JDK7.0+

3.Ojdbc.jar的使用

1DOS编译:修改环境变量 CLASSPATH .;路径

2IDE编译:jar包导入到JavaProject

步骤1.在项目目录创建lib文件夹

步骤2.复制ojdbc.jarlib目录

步骤3.右键ojdbc.jar->Build Path ->Add To Build Path

二、JDBC使用步骤【重点】

1个准备,6个步骤

1个准备:(导ojdbc.jar

6个步骤:

// 1 注册驱动类

Class.forName("oracle.jdbc.OracleDriver");

// 2 创建连接

//url-连接数据库地址(协议 dbserver-IP port SID-数据库唯一标示)

//jdbc:oracle:thin:@localhost:1521:xe

String url="jdbc:oracle:thin:@localhost:1521:xe";

Connectioncon=DriverManager.getConnection("url","hr","hr");

// 3 创建Statement

Statement stm = con.createStatement();

// 4 执行SQL语句

//DML语句 — — int row = executeUpdate(sql)

//             返回int类型,代表影响的行数

String sql ="insert ";

int row = stm.executeUpdate(sql); // DBserver请求

System.out.println("添加了"+ row + "行数据!");

//DQL:  ResultSet rs =stm.executeUpdate(sql)

//             返回Resultest类型,代表查询到的结果(虚表)

String sql ="select      from accounts";

ResultSet rs = stm.executeUpdate(sql);// DBserver请求

// 5 处理查询结果--- 只对查询有用

//指针的初始位置在第一行数据的上方

//rs.next():下移一行,返回Boolean,代表是否有数据 返回true false

while(rs.next()){

// 获取字段值

XXXX=rs.getxxx("字段名")

XXXX=rs.getxxx("1)//获取第一个字段值

}

// 6 关闭连接- 后创建的先关闭

if(rs !=null)

rs.close();

if(stm !=null)

stm.close();

if(con !=null)

con.close();

三、常见问题

     1.oracle.jdbc.OracleDriver---抛异常  导包

    2."jdbc:oracle:thin:@localhost:1521:xe"---localhost  xe(监听被拒绝数据库SID  容易出错  

Io 异常

    3."select * from accounts"   标识符无效   表或试图不存在 缺少from 关键字

  第五步 字段名出错

        四、执行带参数的SQL

  1.使用statement执行带参SQL

     存在的缺点:1SQL语句拼接时,需要考虑数据类型,是字符串需要加”,麻烦;

                 2)存在安全隐患(SQL注入问题)。

  2.使用preparedstatement 执行带参SQL[重点]

     preparedstatement statement的子接口。

使用: 

          // 1 注册驱动类

          // 2 创建连接

          // 3 创建preparedstatement

String sql ="insert..value(seq.nextval,?,?,)";//占位符

PreparedStatement pstm =con,prepareStatement(sql);

          // 4 ?占位符设值,执行SQL语句

Pstm.setXxx(index,)

Pstm.setString(1,“张三”)

int row =pstm.executeUpdate();//DML

ResultSet rs = Pstm.ewxecuteQuery(); //select 语句

 // 5 处理查询结果

 // 6 关闭连接

3.Statement PreparedStatement 的区别

PreparedStatement Statement 的子接口


4.Oracle SQL 语句的执行过程

  4个步骤 : 1. 权限检查     2. 语法检查   3.  SQL语转内部指令  4.执行内部命令

其中1-3 合称 编译。

 PreparedStatement 在第一次执行时先编译 后执行;

以后次,直接执行(预编译的Sataement

    . 日期的处理

数据库中的类型      JAVA中的类型 

    Numberm    Integer/Long

    Numberm,n   Double/Float

   Varchar2(m)           String

Char(m)             String

Date                  java.sql.Date

1.java.util.Datejava.sql.Date的关系

 util.Date sql.Date的父类

父类中的引用 指向  子类对象

Java.util.Date utilDate = res.getDate("字段名")

Java.sql.Date 的使用场景:在和DB 直接打交道时使用 sqlDate

2.添加/修改



猜你喜欢

转载自blog.csdn.net/weixin_41712066/article/details/79943111