Java如果通过jdbc操作连接oracle数据库

作者:爱笑的berg 时间:2023-04-07 10:55:51 

1、jdbc

1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity

2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实现原理是不同的,所以我们所编写的程序应该是面向一套规范去编写的,这套java语言连接数据库的规范就是jdbc

A、sun公司:

jdbc接口是一套由Sun公司制定的一套Class文件规范,用于规范程序员;

B、数据库厂商:

编写jdbc接口的实现类,并将这些实现类打成jar包,并发布;这些jar包被称为连接数据库的驱动。

C、编程的程序员:

从各类型的数据库官网上面下载jar包,并配置到环境变量Classpath中。若果没有把class文件配置到环境变量classPath,那么代表你只有接口和调用数据,而没有接口的实现类,没有实现类程序是无法运行的。

3) oracle10gi下JDBC驱动包介绍:

Oracle 数据库 10g 第 2 版 (10.2.0.1.0) JDBC 驱动程序针对所有平台的 JDBC 瘦客户端

classes12.jar 用于 JDK 1.2 和 JDK 1.3
classes12_g.jar 与 classes12.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息
classes12dms.jar 与 classes12.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
classes12dms_g.jar 与 classes12dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。

ojdbc14.jar用于 JDK 1.4 和 1.5 的类
ojdbc14_g.jar 与 ojdbc14.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
ojdbc14dms.jar 与 ojdbc14.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
ojdbc14dms_g.jar 与 ojdbc14dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
orai18n.jar  用于 JDK 1.2、1.3、1.4 和 1.5 的 NLS 类。该 jar 文件代替旧的 nls_charset jar/zip 文件。
ons.jar  供纯 Java 客户端 Oracle 通知服务 (ONS) 后台程序使用。
demo.tar 或 demo.zip 包含 JDBC 示例程序

|示例:java连接数据库进行查询操作|


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCTest01 {
public static void main(String[] args) {
Connection con=null;
PreparedStatement prs=null;
ResultSet rs=null;
try {
 //步骤1、加载oracle驱动程序
 Class.forName("oracle.jdbc.OracleDriver");
 String url="jdbc:oracle:thin:@10.125.4.55:1521:orcl";
 String user="zhangjunbo";
 String password="zjb123";
 String sql="select * from student where xuehao='2'";
 try {
 //步骤2、获取连接
 con=DriverManager.getConnection(url, user, password);
 System.out.println(con);
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 //步骤3、实例化预编译语句
 prs=con.prepareStatement(sql);
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 //步骤4、执行查询
 try {
 rs=prs.executeQuery(sql);
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }

} catch (ClassNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
try {
 //步骤5、处理查询结果集
 while(rs.next()){
 System.out.println("姓名:"+rs.getString("xingming")+"\n"+"生日:"+rs.getString("birthday"));
 }
} catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}finally{
 //逐一将上面的几个对象关闭,不关闭的话会影响性能、并且占用资源
 //注意关闭的顺序,最后使用的最先关闭
 try {
 rs.close();
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 prs.close();
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 try {
 con.close();
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
}
}
}

|示例:通过配置文件连接数据库进行增删改查|


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCTest02 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//创建输入流
FileReader fReader=null;
try {
 fReader=new FileReader("src/JDBC/db.properties");
} catch (FileNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
//创建map集合对象
Properties properties=new Properties();
//加载(将输入流中的资源加载到属性类对象中)
try {
 properties.load(fReader);
} catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
String driver=properties.getProperty("driver");
String url=properties.getProperty("url");
String username=properties.getProperty("username");
String password=properties.getProperty("password");
Class.forName(driver);
Connection connection=DriverManager.getConnection(url, username, password);
//对student表进行修改操作
String sql="update student set xingming=? where xuehao=?";
PreparedStatement pre=connection.prepareStatement(sql);
pre.setString(1,"纷纷");
pre.setString(2, "3");
String sqlInsert="insert into student values(20,'寂静','男','','12000',3,20,21)";
PreparedStatement pre2=connection.prepareStatement(sqlInsert);
int insertInt=pre2.executeUpdate();
int updateInt=pre.executeUpdate();
System.out.println(updateInt+insertInt);
pre.close();
connection.close();
}
}

来源:https://www.cnblogs.com/jiarui-zjb/p/6250135.html

标签:Java,jdbc,oracle,数据库
0
投稿

猜你喜欢

  • 关于springboot中对sqlSessionFactoryBean的自定义

    2022-12-09 06:05:09
  • Android日历控件PickTime代码实例

    2021-09-28 17:22:57
  • windows系统配置Java开发环境变量

    2022-03-07 23:28:07
  • .Net Winform开发笔记(四)透过现象看本质

    2022-06-22 09:36:24
  • java 的Collection接口实例详解

    2021-09-22 15:35:00
  • C# 实现FTP上传资料的示例

    2023-10-31 21:19:40
  • android端微信支付V3版本地签名统一下单详解

    2023-05-18 02:37:44
  • Spring Aop 如何获取参数名参数值

    2022-09-08 17:00:41
  • Spring常用注解汇总

    2022-12-19 16:26:03
  • Android ContentProvider实现获取手机联系人功能

    2023-08-07 00:52:27
  • C#实现封面图片生成器的示例代码

    2023-05-15 11:05:58
  • GraalVM系列Native Image Basics静态分析

    2023-08-08 03:05:38
  • JAVA 枚举单例模式及源码分析的实例详解

    2022-04-30 23:57:44
  • Java本地缓存的实现代码

    2022-02-22 11:21:04
  • java应用占用内存过高排查的解决方案

    2023-09-21 12:47:30
  • 简单实现Java版学生管理系统

    2022-06-22 15:16:19
  • Android拼图游戏 玩转从基础到应用手势变化

    2021-08-24 02:41:59
  • Android实现屏幕旋转四个方向准确监听

    2022-06-07 08:57:32
  • Android实现简单卡片布局

    2023-05-22 11:43:37
  • C#使用iCSharpcode进行文件压缩实现方法

    2022-09-28 06:25:32
  • asp之家 软件编程 m.aspxhome.com