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

网友投稿 297 2022-11-19


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

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="http://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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java单例模式继承覆盖多态原理详解
下一篇:MyBatisCodeHelperPro插件使用教程详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~