如何使用JDBC连接oracle数据库

如何使用JDBC连接oracle数据库,第1张

先从安装了Oracle的数据库服务器中,找到Oracle安装目录,然后将该目录下的jdbc\lib\classes12.jar文件拷贝到WEB发布服务器的某个目录。假设就直接放在C:\根目录下吧,然后把该路径添加到系统--高级--环境变量中变量名为CLASSPATH?的值中,如:

D:\Program Files\SQLLIB\java\db2java.zipD:\Program Files\SQLLIB\java\runtime.zipc:classes12.jar也就是让java能够找到这个包。

1.注册加载驱动:

驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"

Class.forName("驱动类名")

2.获得连接:

数据库地址: URL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"

Connection conn = DriverManager.getConnection(数据库地址,用户名,密码)

System.out.println("连接成功")

3.创建Statement对象:

Statement 类的主要是用于执行静态 SQL 语句并返回它所生成结果的对象。通过Connection 对象的 createStatement()方法可以创建一个Statement对象。例如:Statement statament = connection.createStatement()具体示例创建Statement对象

Statement statamentMySQL =connectMySQL.createStatement()

S1、下载ojdbc14.jar驱动文件,并将该文件放到你的项目中去;

S2、在MyEclipse中的项目中添加Oracle驱动程序:在项目名上右键-> Build Path ->Add External Archiver然后选择你刚才放在项目中的文件, 点确定即可。

S3、打开Oracle的各项服务,并在Oracle中建一张表。

S4、编写MyEclipse与Oracle的连接程序:

[cpp] view plaincopyprint?<SPAN style="FONT-SIZE: 16px">import java.sql.Connection

import java.sql.DriverManager

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.Statement

import java.sql.* 

public class JDBC_Test {

//orcl为oracle数据库中的数据库名,localhost表示连接本机的oracle数据库

//1521为连接的端口号

private static String url="jdbc:oracle:thin:@localhost:1521:orcl"

//system为登陆oracle数据库的用户名

private static String user="system"

//manager为用户名system的密码

private static String password="manager"

public static Connection conn

public static PreparedStatement ps

public static ResultSet rs

public static Statement st 

//连接数据库的方法

public void getConnection(){

try {

//初始化驱动包

Class.forName("oracle.jdbc.driver.OracleDriver")

//根据数据库连接字符,名称,密码给conn赋值

conn=DriverManager.getConnection(url, user, password)

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace()

}

}

//测试能否与oracle数据库连接成功

public static void main(String[] args) {

JDBC_Test basedao=new JDBC_Test()

basedao.getConnection()

if(conn==null){

System.out.println("与oracle数据库连接失败!")

}else{

System.out.println("与oracle数据库连接成功!")

}

}

}

</SPAN>

import java.sql.Connection

import java.sql.DriverManager

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.Statement

import java.sql.* 

public class JDBC_Test {

//orcl为oracle数据库中的数据库名,localhost表示连接本机的oracle数据库

//1521为连接的端口号

private static String url="jdbc:oracle:thin:@localhost:1521:orcl"

//system为登陆oracle数据库的用户名

private static String user="system"

//manager为用户名system的密码

private static String password="manager"

public static Connection conn

public static PreparedStatement ps

public static ResultSet rs

public static Statement st 

//连接数据库的方法

public void getConnection(){

try {

//初始化驱动包

Class.forName("oracle.jdbc.driver.OracleDriver")

//根据数据库连接字符,名称,密码给conn赋值

conn=DriverManager.getConnection(url, user, password)

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace()

}

}

//测试能否与oracle数据库连接成功

public static void main(String[] args) {

JDBC_Test basedao=new JDBC_Test()

basedao.getConnection()

if(conn==null){

System.out.println("与oracle数据库连接失败!")

}else{

System.out.println("与oracle数据库连接成功!")

}

}

}

S5、如果上述的连接已经建立,就可以利用JDBC中的Java API对数据库进行 *** 作了,具体的查询,插入,删除,更新 *** 作如下:

[cpp] view plaincopyprint?<SPAN style="FONT-SIZE: 16px">代码转载自:http://blog.csdn.net/cxwen78/article/details/6863696     

import java.sql.Connection

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

public class JDBC_Test {

// 创建静态全局变量

static Connection conn

static Statement st

public static void main(String[] args) {

insert()   //插入添加记录

update()   //更新记录数据

delete()   //删除记录

query()    //查询记录并显示

}

/* 插入数据记录,并输出插入的数据记录数*/

public static void insert() {

conn = getConnection() // 首先要获取连接,即连接到数据库

try {

String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"

+ " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')"  // 插入数据的sql语句

st = (Statement) conn.createStatement()    // 创建用于执行静态sql语句的Statement对象

int count = st.executeUpdate(sql)  // 执行插入 *** 作的sql语句,并返回插入数据的个数

System.out.println("向staff表中插入 " + count + " 条数据") //输出插入 *** 作的处理结果

conn.close()   //关闭数据库连接

} catch (SQLException e) {

System.out.println("插入数据失败" + e.getMessage())

}

}

/* 更新符合要求的记录,并返回更新的记录数目*/

public static void update() {

conn = getConnection() //同样先要获取连接,即连接到数据库

try {

String sql = "update staff set wage='2200' where name = 'lucy'"// 更新数据的sql语句

st = (Statement) conn.createStatement()    //创建用于执行静态sql语句的Statement对象,st属局部变量

int count = st.executeUpdate(sql)// 执行更新 *** 作的sql语句,返回更新数据的个数

System.out.println("staff表中更新 " + count + " 条数据")      //输出更新 *** 作的处理结果

conn.close()   //关闭数据库连接

} catch (SQLException e) {

System.out.println("更新数据失败")

}

}

/* 查询数据库,输出符合要求的记录的情况*/

public static void query() {

conn = getConnection() //同样先要获取连接,即连接到数据库

try {

String sql = "select * from staff"     // 查询数据的sql语句

st = (Statement) conn.createStatement()    //创建用于执行静态sql语句的Statement对象,st属局部变量

ResultSet rs = st.executeQuery(sql)    //执行sql查询语句,返回查询数据的结果集

System.out.println("最后的查询结果为:")

while (rs.next()) { // 判断是否还有下一个数据

// 根据字段名获取相应的值

String name = rs.getString("name")

int age = rs.getInt("age")

String sex = rs.getString("sex")

String address = rs.getString("address")

String depart = rs.getString("depart")

String worklen = rs.getString("worklen")

String wage = rs.getString("wage")

//输出查到的记录的各个字段的值

System.out.println(name + " " + age + " " + sex + " " + address

+ " " + depart + " " + worklen + " " + wage)

}

conn.close()   //关闭数据库连接

} catch (SQLException e) {

System.out.println("查询数据失败")

}

}

/* 删除符合要求的记录,输出情况*/

public static void delete() {

conn = getConnection() //同样先要获取连接,即连接到数据库

try {

String sql = "delete from staff  where name = 'lili'"// 删除数据的sql语句

st = (Statement) conn.createStatement()    //创建用于执行静态sql语句的Statement对象,st属局部变量

int count = st.executeUpdate(sql)// 执行sql删除语句,返回删除数据的数量

System.out.println("staff表中删除 " + count + " 条数据\n")    //输出删除 *** 作的处理结果

conn.close()   //关闭数据库连接

} catch (SQLException e) {

System.out.println("删除数据失败")

}

}

/* 获取数据库连接的函数*/

public static Connection getConnection() {

Connection con = null  //创建用于连接数据库的Connection对象

try {

Class.forName("com.mysql.jdbc.Driver")// 加载Mysql数据驱动

con = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/myuser", "root", "root")// 创建数据连接

} catch (Exception e) {

System.out.println("数据库连接失败" + e.getMessage())

}

return con //返回所建立的数据库连接

}

}

</SPAN> 

查询所有表名(以用户HR为例):1·登录所要查询的用户然后指令:selecttable_namefromuser_tables2·登录系统管理员用户然后指令:selecttable_namefromdba_tableswhereowner='HR'查询所有索引(以用户hr为例):登录所要查询的用户然后指令:selectuser_indexes.index_name,user_indexes.index_type,user_indexes.table_ownerfromuser_indexes·登录系统管理员用户然后指令:SELECTindex_name,index_type,ownerFROMdba_indexesWHEREowner='HR'ANDTable_owner='EMPLOYEES'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6772958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存