JDBC-执行SQL语句

倖福魔咒の 提交于 2020-03-19 19:19:25

名词解释

ODBC: Open Database Connectivity

JDBC: Java Database Connectivity

JDBC API: 管理数据库,用于编成

JDBC Driver API: 连接数据库,加载数据库驱动

JDBC API

DriverManager

装载驱动程序

Connection

连接数据库

常用方法

方法

说明

返回类型

createStatement()

创建查询对象

Statement

prepareStatement()

创建预编译查询对象

PreparedStatement

prepareCall("{call 存储过程名(?, ?, ?...)}")

每个?表示一个参数

CallableStatement

commit()

提交更改至数据库

返回执行的记录数

int

close()

关闭数据库连接

  

Statement

执行SQL语句

常用方法

方法

说明

返回类型

executeQuery(String SQL查询语句)

执行该SQL查询

ResultSet

executeUpdate(String SQL语句)

执行InsertUpdateDelete语句

返回执行成功的记录数

int

close()

关闭查询对象,释放资源

  

PreparedStatement

执行预编译的SQL语句

常用方法

方法

说明

返回类型

executeQuery()

执行编译后的SQL查询

ResultSet

executeUpdate()

执行编译后的InsertUpdateDelete语句

返回执行成功的记录数

int

setType(int i, Type x)

将预编译的第i个占位符设置为x

i1开始

  

CallableStatement

执行存储过程

常用方法

方法

说明

返回类型

setType(int i, Type x)

将存储过程第i个值设置为x

  

executeUpdate()

执行存储过程

  

ResultSet

查询结果集

常用方法

方法

说明

返回类型

next()

移动至下一条记录,当到达末尾是,返回false

boolean

getType("字段名")

返回Type类型的该字段的值

Type

JDBC Driver API

面向开发商,使数据库驱动适配Java

连接

依赖

java.sql.Connection;//用于连接数据库

语法

Class.forName("驱动名");

Connection conn = DriverManager.getConnection("地址","用户名","密码");

conn.close()//关闭连接

MySQL
  • 驱动名:"com.mysql.jdbc.Driver"
  • 连接地址:"jdbc:mysql://ip:port[/数据库]"
Oracle
  • 驱动名:"oracle.jdbc.driver.OracleDriver"
  • 链接地址:"jdbc:oracle:thin:@ip:port[:数据库]"

查询

Statement

依赖

java.sql.Statement; //用于执行SQL语句

java.sql.ResultSet; //用于保存结果集

语法

//创建查询对象

Statement statement= conn.createStatement();

//执行查询

ResultSet resultSet = statement.executeQuery("SQL查询语句");

//关闭查询

statement.close();

PreparedStatement

依赖

java.sql.PreparedStatement;

语法

//创建预编译SQL对象,SQL语句中的变量用?代替

PreparedStatement preparedStatement = conn.prepareStatement("SQL查询语句");

//填充SQL语句中的变量

// preparedStatement.setInt(3, 300); 将第3?设置为300

preparedStatement.setType(i, x);

//执行该预编译SQL语句,没有参数

preparedStatement.executeQuery();

//关闭查询

preparedStatement.close();

结果集的使用

依赖

java.sql.ResultSet; //用于保存结果集

遍历结果集

while(resultSet.next()){

int value1 = resultSet.getInt("字段1");

String value2 = resultSet.getString("字段2");

}

resultSet.close(); //关闭结果集

更新/插入/删除

依赖

java.sql.Statement;

java.sql.PreparedStatement;

语法

//执行SQL语句,并返回成功执行的记录数

int result = statement.executeUpdate("SQL语句");

//其他设置同查询

//使用预编译执行SQL语句,没有参数。返回成功执行的记录数

//预编译的数据填充同查询

int result2 = statement.executeUpdate();

//提交

conn.commit();

回滚

当执行SQL语句失败时(抛出SQLException异常),应执行回滚操作

依赖

java.sql.Connection;

语法

try{

//执行SQL语句

}catch(SQLException e){

conn.rollback();//回滚

}

资源释放

执行结束后应释放占用资源

按照创建的顺序的倒序,关闭各资源。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!