JDBC 连接Oracle数据库需要的数据:
驱动程序包名:ojdbc14.jar (在自己的项目中创建一个libs文件夹存放该包,并进行配置:右键包点击Build Path 接着点击Add toBuild Path就可以完成配置)
驱动类的名字:oracle.jdbc.driver.OracleDriver
JDBC URL:jdbc:oracle:thin:@dbip:port:databasename
JDBC URL中各个部分含义如下:
dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。
port –为数据库的监听端口,需要看安装时的配置,缺省为1521。
databasename –为数据库的SID,通常为全局数据库的名字。
注:驱动程序包名有可能会变
1.加载驱动
2.建立连接
3.执行SQL语句
4.关闭连接
示例代码:
package com.hcq.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//加载驱动方式一要导入的java包
//import oracle.jdbc.OracleDriver;
public class Main3 {
/** JDBC连接数据库案例 */
/** 数据库的属性信息 */
// 数据库的主机 IP地址
private static String IP = "127.0.0.1";
// 数据库端口号
private static String PORT = "1521";
// 数据库名
private static String DB_NAME = "test";
// 数据库 URL
private static String URL = "jdbc:oracle:thin:@" + IP + ":" + PORT + ":" + DB_NAME;
// 数据库连接用户名
private static String USER = "scott";
// 用户密码
private static String PSW = "tiger";
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
try {
/** 第一步:加载驱动 ;加载驱动有三种方式 */
// 方式一
// DriverManager.registerDriver(new OracleDriver());
// 方式二
Class.forName("oracle.jdbc.OracleDriver");// 新版本写法,9i之后新版本推荐
// Class.forName("oracle.jdbc.driver.OracleDriver");// 兼容9i之前的版本。
// 方式三:自动加载
/** 第二步:建立连接 */
// 获取连接
conn = DriverManager.getConnection(URL, USER, PSW);
/** 第三步:连接成功后,获取Statement对象, 得到一个可以执行sql语句的声明 */
st = conn.createStatement();
// 编写sql语句(本案例使用的数据表为Oracle自带的数据表)
String sql = "SELECT empno,ename,job,sal,deptno FROM emp WHERE deptno = 30";
// 执行sql语句,返回一个结果集
ResultSet rs = st.executeQuery(sql);
// rs.next() 判断是否有下一行数据,并且将游标移至下一行,返回类型为boolean类型
while (rs.next()) {
// 得到每一列的信息可以使用列名或者列的编号查询
int empno = rs.getInt(1);// 效率比较高
// int empno=rs.getInt("empno");
String ename = rs.getString(2);
String job = rs.getString(3);
double sal = rs.getDouble(4);
int deptno = rs.getInt(5);
System.out.println("编号:" + empno + "\t姓名:" + ename + "\t职位:" + job + "\t薪水:" + sal + "\t部门:" + deptno);
}
rs.close();// 释放结果集资源
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (st != null) {
try {
/** 第四步:sql语句执行完应该释放 Statement 资源 */
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
/** 第五步:释放连接资源 */
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
结果: