Summary of JDBC basic knowledge points

JDBC


JDBC (Java DataBase Connection) The technology of data accessed by java, also known as the driver.

First, the development of JDBC

1. Development

·· JAVA- > ODBC- > DB Bridge

JAVA- " local clientAPI- " DB local clientAPI call

JAVA-> DB direct   connection

JAVA- > server configuration DB information- > DB connection   pool

2. JDBC contains the content

Two parts:

1 ) Interface part: provided by sun company, in the java.sql.* and javax.sql.* packages of JDK ;

2 ) Implementation part: provided by database manufacturers, go to the official website to download

Ojdbc5.jar----JDK6.0

Ojdbc6.jar----JDK7.0+

3. Use of Ojdbc.jar

1 ) DOS compilation : modify the environment variable CLASSPATH to .; path

2 ) IDE compilation : import jar package into JavaProject

Step 1. Create lib folder in project directory

Step 2. Copy ojdbc.jar to lib directory

Step 3. Right-click ojdbc.jar- >Build Path->Add To Build Path

2. JDBC usage steps [Key points]

1 prep, 6 steps

1 preparation: ( direct ojdbc.jar )

6 steps:

// 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();

3. Frequently Asked Questions

     1.oracle.jdbc.OracleDriver--- throw exception guide package 

    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.添加/修改



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324552209&siteId=291194637