12、oracle JDBC技术
JDBC技术
什么是jdbc?
是Java Database Connectivity 简称JDBC,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中的数据的方法。是面向关系型数据库的。
为了规范数据库,要想数据库使用Java代码,数据库厂家就必须实现Java接口中的方法。
在java.sql包中提供了很多接口。
例如:java.sql.Driver 用来加载驱动,DriverManager创建连接()
java.sql.Connection 用来连接数据库的
java.sql.Statement 静态的编译和发送sql语句,静态处理块
java.sql.PreparedStatement 动态的发送sql语句
java.sql.ResultSet 获取sql语句的返回结果集
java.sql.ResultSetMetaData -->结果集元数据
JDBC 的创建步骤
-
导入jar
D:\develop\oracle\product\11.2.0\dbhome_1\jdbc\lib 安装路径找
-
加载驱动
oracle: 加载类:oracle.java.driver.OracleDriver
class.forName("oracle.java.driver.OracleDriver");
-
创建连接
必须要有url,username,password
url: jdbc:oracle:thin:@localhost:1521:orcl
orcl:是数据库实例名
username:用户名
password:密码
Connection conn = DriverManager.getConnection();
-
创建statement(静态处理块)
Statement stmt = conn.createStatement();
-
执行sql语句
//使用select查询语句使用 stmt.excuteQuery(sql);
//返回的是一个结果集 ResultSet
String sql = "select * from emp" ;
ResultSet set = stmt.executeQuery(sql);
while(set.next()){
sout(set.getInt(1));//1代表是第一个字段
//也可以传进字段名
sout(set.getInt("ename"));
}
//执行DML语句使用 stmt.executeUpdata(sql);
返回值为int类型,成功的条数。
//执行DDL语句使用 stmt.execute(sql);
返回的是Boolean类型,执行是否成功。
-
关闭资源
//都是流对象
stmt.close();
conn.close();
package day01.com.test02; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JDBCUtils { public static Connection getConnection() throws ClassNotFoundException, SQLException { //1.加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.连接数据库 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:orcl", "lgx", "123"); return conn; } } -------------------------------------------------------------------------------- package day01.com.test02; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test { public static void main(String[] args) throws ClassNotFoundException, SQLException { //建立连接 Connection conn = JDBCUtils.getConnection(); //创建静态处理块 statement Statement stmt = conn.createStatement(); //删除一条数据 /* String sql = "delete from test where name = '张三1' "; int n = stmt.executeUpdate(sql); System.out.println(n); */ //插入一条数据 /* String sql = "insert into test values(60,'李四')"; int n = stmt.executeUpdate(sql); System.out.println(n); */ //修改一条数据 /* String sql = "update test set name ='王五' where id = 20"; int n = stmt.executeUpdate(sql); System.out.println(n); */ //查询数据 String sql = "select * from test "; ResultSet set = stmt.executeQuery(sql); while (set.next()) { // System.out.print(set.getInt(1)); // System.out.println(set.getString(2)); System.out.print(set.getInt("id")); System.out.println(set.getString("name")); } conn.close(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南