如何利用JDBC连接并 *** 作Oracle数据库

如何利用JDBC连接并 *** 作Oracle数据库,第1张

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> 

先从安装了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()

在Linux机器上安装运行Oracle 摘要:Oracle于去年年底宣布移植Oracle 8和Oracle Application Server到Linux。 这是一个明确无误的标志:整个世界都应该认识到,Linux已经是一个严肃的 *** 作系统,足以承担企业级的应用。 Uche Ogbuji在下文中解释了应该如何安装、配置和初步使用Oracle 8 for Linux。

如何在你的Linux机器上安装运行Oracle

一篇实用指导

经过了许多谣传和暗示之后,Oracle于1998年10月7日发布了Linux上的Oracle 8数据库和Oracle Application Server。这是Linux近期历史中最为耀眼的一幕。

无论您个人对Oracle公司的看法如何,该公司在大规模数据应用领域的巨大声誉使这次产品发布成为一个明确 无误的标志:整个世界都应该认识到,Linux已经是一个严肃的 *** 作系统,足以承担企业级的应用。

但对于任何真正关心Linux的人来说,各种宣传攻势只是过眼烟云,只有代码才是关键的。(only code matters. 译注:事实上,Oracle 8i, 即8.1.5 for Linux已经开发完成,但其中的JServer模块有问题,所以Oracle还没有发布。)

开始行动

在RedHat上安装Oracle可以是相当轻而易举的,但要是完全跟着Oracle公司的文档走就未必那么容易了 。最快的捷径是Tom Bisset的主页:

http://jordan.fortwayne.com/oracle。

如果您看了Tom的主页,那么您会注意到他漏了JDBC的安装。如果您准备使用JDBC(对于跨平台的Oracle应用十分方便),只需在安装屏幕要求您选择组件(components)时,加上该选项即可。当然,您应该先装好JDK。我个人使用Blackdown的JDK 1.1.7。(译注:Redhat包括JDK)然后需要设置oracle用户的ClassPath环境变量,最好的办法是在oracle用户目录的.bash_profile 或 .profile中加上一句:

CLASSPATH=/usr/lib/jdk/lib/classes.zipexport CLASSPATH然后,如果您只需做Web Applet的话,在安装程序"Choose JDBC Components"的时候, 选择"JDK 1.1 JDBC Thin Driver",如果您需要做完整的Java应用,选择"JDK 1.1 JDBC OCI Driver"。

另外请注意:安装程序让您输入各口令时,如果口令不符合规范,不会警告。我第一次安装时,口令里加了".",这在UNIX中是允许的,Oracle就是另一码事了。直到安装快结束时,程序才告诉我口令有问题。当时为保险 起见,我从头做了一次安装。

安装程序的另一个问题是试图往还没有建立的目录里拷贝文件。有必要在安装前

mkdir -p /u01/app/oracle/product/8.0.5/doc/server.805/install。

这一关过后万事大吉。

安装成功后,必须以ROOT身份登录,运行root.sh。我对root.sh作了以下改动:

· LBIN环境变量从/usr/lbin改成了/usr/local/bin

· 增加环境变量LOG=/tmp/oracle-root.sh.log,这样脚本的运行结果会记录下来

root.sh里说到,要想数据库作为一个服务器运行,必须先设定TWO_TASK变量;

但是,事实上如果从安装Oracle的机器上运行root.sh,就没有必要设这个变量。

Python和Oracle

我配置了一下python(译注:一种强大,快速的面向对象的脚本语言),以测试Oracle的编程接口和网络接口 。在python中要连Oracle,需要Digital Creation(Zope应用服务器的作者)的DCOracle模块。

您只需下载软件并按照指示照做就行。如果是DCOracle 1.1.0,使用Setup-8.0.4的配置,从ORACLE_LIBS变量中删去-lsocket, -lnsl, -lgen, -lelf, -laio, 和-lposix4即可,那些都是Solaris专用的。注意Redhat 5.2和6.0中安装的 python设置不全,config目录和include目录被省略,无法编译安装第三方的模块。您必须自己编译python或者下载一个合适的RPM。找python的RPM,最好的去处可能是Oliver Andrich的 Python &Linux主页。

只要rpm -e --nodeps python, 然后 rpm -i python,python-dev和其他RPM即可。

装好python后,我运行了以下的基本查询,访问Oracle。

[uche@malatesta uche]$ python

Python 1.5.1 (#1, Sep 3 1998, 22:51:17) [GCC 2.7.2.3] on linux-i386

Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam

>>>import DCOracle

>>>#connect to DB. scott/tiger are the test database username/password

>>>dbc=DCOracle.Connect("scott/tiger@sforza") #sforza is the local

Oracle

server

>>>c = dbc.cursor()

>>>c.execute("SELECT * FROM emp WHERE emp.deptno = 10")

>>>rows = c.fetchall()

>>>print rows

[(7782, CLARK, MANAGER, 7839, dbiDate(1981-06-09 00:00:00), 2450.0,

None, 10),

(7839, KING, PRESIDENT, None, dbiDate(1981-11-17 00:00:00), 5000.0,

None, 10),

(7934, MILLER, CLERK, 7782, dbiDate(1982-01-23 00:00:00), 1300.0,

None, 10)]

开发工作站配置

我在数据库服务器以外的一台机器上编译安装了python和其他编程接口。最初,看起来似乎我必须安装Oracle 的所有PRO*C/C++软件包。但要把Oracle安装程序运行到那一步也够麻烦的,所以我不想那样办。于是我找出了写程序所需

要的最小限量的头文件(include)、对象文件(object)和库文件(library):

$ORACLE_HOME/lib/*

$ORACLE_HOME/rdbms/demo/*

$ORACLE_HOME/rdbms/lib/*

我的机器上设ORACLE_HOME为/usr/local/oracle。

注意这些文件还不能让您可以在C程序中直接嵌入SQL语句,只有完整安装PRO*C/C++后才行。如果要用JAVA的话,还得增加$ORACLE_HOME/jdbc/lib/*;注意把这个目录加到ClASSPATH变量中。

JDBC连接

为测试JDBC连接,我作了一个小程序,在一个listbox内显示测试库中的所有雇员名。下面的程序1是调用JDBC的java Applet,程序2是调用JAVA程序的HTML超文本。如果您的JDBC已经安装成功,将程序1拷贝为 JDBCTest.java,将程序2拷贝为JDBCTest.html,

然后:

javac JDBCTest.java

appletviewer JDBCTest.html

您就可以自己看看结果如何了:

程序1:

/*

Applet that reads in several rows from a remote Oracle database

and presents them in a listbox.

*/

import java.sql.*

import java.awt.*

import java.applet.*

import java.lang.*

public class JDBCTest extends Applet

{

//Single-select ListBox

private List employee_list = new List(5, false)

public void init()

{

setLayout(new BorderLayout())

try {

//Set up the Oracle JDBC driver

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())

//Connect to an Oracle database on machine sforza, using username

//"scott" and password "tiger"

Connection DB_conn = DriverManager.getConnection

("jdbc:oracle:thin:@sforza:1521:ORCL", "scott", "tiger")

//Connection DB_conn = DriverManager.getConnection

("jdbc:oracle:thin:scott/tiger@sforza:1521:ORCL")

//Create a JDBC statement object

Statement statement_obj = DB_conn.createStatement()

//Execute a query to get the employee names from the test DB

ResultSet results = statement_obj.executeQuery ("select ENAME from

EMP")

//Populate the list box with all the employee names

while (results.next ()){

employee_list.add(results.getString(1))

}

} catch (SQLException e) {

throw new RuntimeException("SQL Exception " + e.getMessage())

}

add(employee_list)

}

}

http://oracle.chinaitlab.com/install/520180.html


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存