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


猜你喜欢
- 本章目标整合 Mybatis ,并集成 Druid 数据源可视化监控 Druid 数据源使用 JPA 生成数据表利用注解实现数据库的事物利用
- 前言短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。现在市面上的短信服务平台有很多
- 在Material Design里,CoordinatorLayout通常用来作为顶层视图,来协调处理各个子View之间的动作,从而实现各种
- 前言我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。今天给大家分享使
- 开发过程中有这样一个场景,2个 bean 初始化逻辑中有依赖关系,需要控制二者的初始化顺序。实现方式可以有多种,本文结合目前对 Spring
- 本文介绍在使用C#开发WinForm程序时,如何使用自定义的XML配置文件。虽然也可以使用app.config,但命名方面很别扭。我们在使用
- 一、Android 个人手机通讯录开发数据存储:SQLite 数据库开发工具:Android Studio二、Phone Module 简介
- public class MD5Check {/*** 默认的密码字符串组合,用来将字节转换成 16 进制表示的字符,apache校验下载的
- 前言:现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新。该项目实现的就是
- 前言在上一篇学习SpringBoot中,整合了Mybatis、Druid和PageHelper并实现了多数据源的操作。本篇主要是介绍和使用目
- 本文实例为大家分享了android实现简单仪表盘效果的具体代码,供大家参考,具体内容如下实现这个效果:中间的文字很好写,外层的进度条就需要自
- 在上篇文章给大家介绍了WebService教程详解(一)使用工具的原因:1、 使用工具可以更好的了解WebService请求的过程 2、 使
- 在微服务中,需要我们在各个微服务中共享Session,使用Redis来共享Session是一个很好的解决方法,Redis是运行在内存中,查取
- 方式一public class Test{ public static void main(String[] args) throws Ex
- 1、背景当我们的hadoop集群运行了一段时间之后,各个DataNode上的数据分布并不一定是均匀分布的。比如说: 我们向现有集群中添加了一
- 类加载是什么把磁盘中的java文件加载到内存中的过程叫做类加载当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把
- 对于简单的场景来讲,在MEF中导入依赖模块非常简单,只要用ImportAttribute标记依赖的成员,MEF模块会自动找到并创建该模块。但
- Java常用API介绍API概念什么是API?API(Application Programming interface) 应用程序编程接口
- Java是一种面向对象的编程语言,由Sun Microsystems公司在1995年的时候正式发布。直到今天,Java都一直是最受欢迎的编程
- 简介本文主要讲解java 利用Selenium 操作浏览器网站时候,需要用的js的地方,代码该如何实现。调用JavaScriptwebdri