JDBC常见操作总结
时间:2022-07-22
本文章向大家介绍JDBC常见操作总结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JDBC-Query
Java连接数据库,并执行查询操作具体步骤如下(需要注意的是要导入相关的包): 1、声明连接参数 2、注册驱动 3、利用驱动管理器,建立连接 4、定义sql语句 5、创建发送器(statement、prestatement) 6、执行sql语句(ResultSet) 7、处理结果集 8、关闭相关对象
package cn.bjsxt.jdbc;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc连接
* @author chy
*
*/
public class TestJdbcQuery {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、声明连接参数
String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 数据库的路径
String user ="scott";
String password="tiger";
//2、注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//3、使用驱动管理器,与数据库建立连接
Connection conn=DriverManager.getConnection(url, user, password);
// System.out.println(conn);
//4、定义sql语句
String sql="select empno,ename,hiredate from emp";
//5、创建sql发送器,是由连接对象创建的
Statement statm =conn.createStatement();
//6、发送并执行SQL语句,得到结果
ResultSet rs=statm.executeQuery(sql);
//7、处理结果集
while (rs.next()) {
//取出该行的每一列,依据数据类型取值
int emp=rs.getInt(1);
String ename=rs.getString("ename");
Date hiredate=rs.getDate(3);
System.out.println(emp+"t"+ename+"t"+hiredate+"t");
}
rs.close();
statm.close();
conn.close();
}
}
JDBC-Update
Java连接数据库,并执行DML操作,即数据的增删改,具体步骤如下:
- 定义连接参数
- 注册驱动
- 建立连接
- 定义sql语句
- 创建发送器
- 执行更新操作(executeUpdate(sql))
- 处理结果
- 关闭对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc执行DML操作
* @author chy
*
*/
public class JdbcUpdate {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、 定义连接参数
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
//2、声明连接对象
//3、注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//4、建立连接
Connection conn=DriverManager.getConnection(url, user, password);
System.out.println(conn);
//5、定义sql语句
//String sql = "insert into emp values (1234, '小伟', 'SALESMAN', 7782, sysdate, 500, 200, 20)";
//String sql = "update emp set sal=sal*2 where empno=1234";
String sql = "delete from emp where empno=1234";
//6、创建发送器
Statement stat=conn.createStatement();
System.out.println("执行发送器");
//7、执行更新操作
int rowCount=stat.executeUpdate(sql);
//7、处理结果
if (rowCount>0) {
System.out.println("操作成功");
}else {
System.out.println("操作失败");
}
System.out.println("执行操作完毕");
stat.close();
conn.close();
}
}
JDBC-Transaction
Java连接数据,并进行事务处理操作,具体步骤如下:
1、声明连接参数 2、定义连接对象1 3、定义sql语句2 4、注册驱动 6、建立连接 7、关闭自动提交功能 8、执行创建事务操作(createStatement(sql)) 9、处理数据、异常 10、关闭对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTransaction {
public static void main(String[] args) {
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
Connection conn=null;
Statement stam1=null;//有几条SQL语句,将创建几个发送器对象
Statement stam2=null;
String sql1="update t_account set money=money-1000 where id=1";
String sql2="update t_account set money=money+1000 where id=3";
try {
Class.forName("oracle.jdbc.OracleDriver");
conn =DriverManager.getConnection(url, user, password);
//关闭jdbc自动提交功能
conn.setAutoCommit(false);
stam1=conn.createStatement();
stam2=conn.createStatement();
int num=stam1.executeUpdate(sql1);
num+=stam2.executeUpdate(sql2);
if (num==2) {
System.out.println("转账成功");
conn.commit();
System.out.println("提交事务");
}else {
System.out.println("转账失败");
conn.rollback();
System.out.println("事务回滚");
}
} catch (Exception e) {
System.out.println("提交失败,异常信息"+e.getMessage());
if (conn!=null) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}finally {
if (conn!=null) {//重新开始自动回滚
try {
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stam2!=null) {
try {
stam2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stam1!=null) {
try {
stam1.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
- 两个对象:conn和stat1、stat2,且需要进行初始化。和前两个步骤不同的原因是前两个代码块采用的是throws的方法抛出异常,而本代码采用try…catch的方法处理异常。需要将连接对象声明在该语句块外 ↩︎
- 该步骤后开始使用try…catch语句处理异常 ↩︎
- IntelliJ IDEA 复杂的重构技巧
- 打造属于自己的支持版本迭代的Asp.Net Web Api Route
- 分布式消息队列 RocketMQ 源码分析 —— Message 拉取与消费(上)
- 分布式消息队列 RocketMQ 源码分析 —— Message 拉取与消费(下)
- Spring Boot中使用RabbitMQ
- Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】
- 哪类人适合当产品经理?
- 产品经理·杂谈
- Python机器学习中的特征选择
- Android学习第八弹之改变状态栏的颜色使其与APP风格一体化
- 手把手教你 MongoDB 的安装与详细使用(二)
- 搭建 MongoDB分片(sharding) / 分区 / 集群环境
- Android调用手机中的应用市场,去评分的功能实现
- ANR 原理与实战技巧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法