新聞中心
Oracle數(shù)據(jù)庫(kù) Java應(yīng)用開發(fā)簡(jiǎn)介

在當(dāng)今信息化時(shí)代,數(shù)據(jù)庫(kù)已經(jīng)成為大數(shù)據(jù)存儲(chǔ)、處理和管理的重要手段。而其中,Oracle數(shù)據(jù)庫(kù)是最為常見和流行的一種數(shù)據(jù)庫(kù)。然而,為了更好地利用這個(gè)數(shù)據(jù)庫(kù),Java應(yīng)用開發(fā)便成為了必不可少的一項(xiàng)工作。本文將從以下三個(gè)方面介紹oracle數(shù)據(jù)庫(kù)java應(yīng)用開發(fā)的基本情況:Oracle數(shù)據(jù)庫(kù)介紹、Java應(yīng)用開發(fā)介紹和Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)實(shí)戰(zhàn)。
一、Oracle數(shù)據(jù)庫(kù)介紹
Oracle數(shù)據(jù)庫(kù)是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是世界上應(yīng)用最廣泛的數(shù)據(jù)庫(kù)之一。Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)分為三層:客戶端、實(shí)例和存儲(chǔ)。Oracle實(shí)例是由許多進(jìn)程和內(nèi)存塊組成的,主要分為后臺(tái)進(jìn)程、前臺(tái)進(jìn)程和系統(tǒng)內(nèi)存。Oracle數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)在于其高效的結(jié)果集、高級(jí)的聚合功能以及強(qiáng)大的數(shù)據(jù)字典。
二、Java應(yīng)用開發(fā)介紹
Java是一種常用的語言,它的特點(diǎn)是平臺(tái)無關(guān)性,即開發(fā)的應(yīng)用程序可以同時(shí)運(yùn)行在不同的操作系統(tǒng)平臺(tái)上。Java應(yīng)用開發(fā)的優(yōu)點(diǎn)在于其規(guī)范化的開發(fā)標(biāo)準(zhǔn)、縮短了開發(fā)周期、提高了可維護(hù)性以及降低了維護(hù)成本。
在Java應(yīng)用開發(fā)中,開發(fā)人員可以使用JDBC(Java Database Connectivity)API,這是Java的標(biāo)準(zhǔn)API,它提供了訪問關(guān)系型數(shù)據(jù)庫(kù)的方法。通過JDBC,應(yīng)用程序可以與各種數(shù)據(jù)庫(kù)進(jìn)行交互,并在Java環(huán)境中完成各種數(shù)據(jù)庫(kù)操作,如查詢、增加、修改和刪除等操作。在Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)中,JDBC API是必不可少的一部分。
三、Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)實(shí)戰(zhàn)
1. 開發(fā)環(huán)境的準(zhǔn)備
在Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)前,之一步必須是為開發(fā)環(huán)境準(zhǔn)備好必要的軟件和配置。這包括JDK、IDE、Oracle客戶端軟件等。
2. 數(shù)據(jù)庫(kù)連接及操作
Oracle數(shù)據(jù)庫(kù)開始進(jìn)入開發(fā)環(huán)節(jié)后,需要連接到相應(yīng)的數(shù)據(jù)庫(kù)。Java程序連接Oracle數(shù)據(jù)庫(kù)需要以下幾個(gè)步驟:
a. 加載驅(qū)動(dòng)程序
在Java中通過get方法獲取Oracle數(shù)據(jù)庫(kù)連接需要用到反射技術(shù)。在連接Oracle數(shù)據(jù)庫(kù)前,必須首先加載驅(qū)動(dòng)程序,即將Oracle的驅(qū)動(dòng)程序包oojdbc6.jar或oojdbc14.jar等加入到Java的classpath中。
b. 獲取數(shù)據(jù)庫(kù)連接
通過獲取驅(qū)動(dòng)程序包中的DriverManager,并使用DriverManager.getConnection()方法獲取數(shù)據(jù)庫(kù)連接。
c. 關(guān)閉數(shù)據(jù)庫(kù)連接
使用Connection類中的close()方法關(guān)閉已打開的數(shù)據(jù)庫(kù)連接。
3. 數(shù)據(jù)庫(kù)操作
一旦與Oracle數(shù)據(jù)庫(kù)建立了連接,即可進(jìn)行各種數(shù)據(jù)操作。面向?qū)ο蟮腂ean對(duì)象已成為主流的Java程序開發(fā)技術(shù),開發(fā)人員通常會(huì)將Oracle數(shù)據(jù)庫(kù)的某個(gè)表或試圖使用Java中的數(shù)據(jù)訪問對(duì)象(DAO)進(jìn)行封裝,之后再進(jìn)行數(shù)據(jù)的增刪改查操作。代碼示例:
public void add() {
try {
Class.forName(“oracle.jdbc.driver.OracleDriver”); //加載Oracle驅(qū)動(dòng)
System.out.println(“Driver Loaded?。 ?;
Connection conn = DriverManager.getConnection(
“jdbc:oracle:thin:@localhost:1521:myoracle”,”root”,”password”); //獲取數(shù)據(jù)庫(kù)連接
String sql = “insert into userInfo(id,name,age) values(” +id+ “,'” +name+ “‘,” +age+ “)”; //準(zhǔn)備SQL語句
Statement stmt = conn.createStatement(); //創(chuàng)建Statement對(duì)象
int result = stmt.executeUpdate(sql); //執(zhí)行更新操作
System.out.println(“Result:”+result); //輸出更新結(jié)果
stmt.close(); //關(guān)閉Statement對(duì)象
conn.close(); //關(guān)閉連接
System.out.println(“Insert Successful?。 ?;
} catch (ClassNotFoundException e) {
System.out.println(“Oracle Driver Error??!”);
e.printStackTrace();
} catch (SQLException e) {
System.out.println(“SQL Error??!”);
e.printStackTrace();
}
}
Oracle數(shù)據(jù)庫(kù)是當(dāng)前最為重要和流行的數(shù)據(jù)庫(kù)之一,而在使用Oracle數(shù)據(jù)庫(kù)的時(shí)候,Java應(yīng)用開發(fā)已經(jīng)成為必不可少的一項(xiàng)工作。本文從數(shù)據(jù)庫(kù)、Java應(yīng)用開發(fā)和Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)實(shí)戰(zhàn)三個(gè)角度,介紹了Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)的基本情況,使讀者對(duì)Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)有了更深入的了解。未來,Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)在大數(shù)據(jù)時(shí)代也將繼續(xù)發(fā)揮重要作用。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
使用java連接oracle數(shù)據(jù)庫(kù)的詳細(xì)步驟,以及怎樣在oracle數(shù)據(jù)庫(kù)里建庫(kù)建表,和用戶名及權(quán)限的設(shè)置
這個(gè)說起來話有點(diǎn)長(zhǎng)了。
你按照我以下的步驟就可以建立java跟oracle的鏈接:
(1)首先要安察廳裝oracle數(shù)據(jù)庫(kù)(這是廢話,不過這個(gè)過程中你可以設(shè)置用戶名機(jī)密碼他的權(quán)限相當(dāng)于管理員),然后啟動(dòng)查詢分析器再用 great database databasename(數(shù)據(jù) 庫(kù)的名稱)的命令建立數(shù)據(jù)庫(kù),之后就是要建立數(shù)據(jù)庫(kù)的表,建表的命令如下(我給你的例子是建立一個(gè)學(xué)生表):
usr database/*你剛才所建立的數(shù)據(jù)庫(kù)的名稱,一定要相同,那么你就是再這個(gè)數(shù)據(jù)庫(kù)中建立了這個(gè)表*/
CREATE TABLE stu
(
sno char(10) NOT NULL/*學(xué)號(hào)字段*/
CONSTRAINT PK_sno PRIMARY KEY CLUSTERED,/*主鍵約束*/
sname char(8) NOT NULL, /*姓名字段*/
sex char(2) NULL, /*性別字段*/
native int NULL, /*籍貫*/
birthday varchar(20) NULL,/*學(xué)生出生日期*/
dno char(6) NULL,/*學(xué)生所在院系編號(hào)(外鍵)*/
spno char(8) NULL,/*專業(yè)代碼(外鍵)*/
classno char(4) NULL,/*班級(jí)號(hào)*/
entime char(4) NULL,/*學(xué)生入校時(shí)間*/
home varchar(40) NULL,/*學(xué)生家庭住址*/
tel varchar(40) NULL/*學(xué)生聯(lián)系*/
)
這樣你的數(shù)據(jù)庫(kù)和相應(yīng)的表就建成了,如果你需要對(duì)數(shù)據(jù)庫(kù)的權(quán)限進(jìn)行設(shè)置那么就涉及到角色的賦予或者你安裝oracle時(shí)需要進(jìn)行設(shè)置的用戶明及密碼,這塊說來就話長(zhǎng)啦!如果你只是學(xué)習(xí)java和數(shù)據(jù)庫(kù)的鏈接,那么這個(gè)可以暫時(shí)放一邊,如果你非得想知道那么你需要系統(tǒng)學(xué)習(xí)數(shù)據(jù)庫(kù)的知識(shí)。我這里就不跟你介紹了。建立完表之后就需要對(duì)表插入數(shù)據(jù)(插入數(shù)據(jù)可以用java編程,用自己設(shè)置的軟件插入數(shù)據(jù)也可以用數(shù)據(jù)庫(kù)的查詢分析氣用sql語句插入)
(2)這一步也是java跟數(shù)據(jù)庫(kù)鏈接的關(guān)鍵,在敗鏈隱你安裝了數(shù)據(jù)庫(kù)的那臺(tái)pc機(jī)或者服務(wù)器注冊(cè)數(shù)據(jù)源步驟:進(jìn)入你電腦的控制面板——管理工具——數(shù)據(jù)源——系統(tǒng)DNS(選中)——添加(在這里面有你要添加的數(shù)據(jù)源添加microsoft DOBC for Orccle,再這里點(diǎn)擊完成后會(huì)彈出一個(gè)對(duì)話框,要你填寫數(shù)據(jù)源的名稱這個(gè)名稱一定要記住,java鏈接程序編程時(shí)需要用到這個(gè)名稱,還有要填服務(wù)器的名稱,這個(gè)名稱需要你的服務(wù)器名稱,如果你是單臺(tái)pc機(jī)實(shí)驗(yàn),那么在你數(shù)據(jù)庫(kù)登錄的界面那個(gè)服務(wù)器名稱就可以了,然后點(diǎn)擊下去進(jìn)行必要的設(shè)置就可以了),這樣我們對(duì)數(shù)據(jù)庫(kù)部分的工作已經(jīng)完成啦!接下來就是完成java的編程部分。
(3)這里就是java的編程部分,這里我給了你一個(gè)我從教材弄來的編好并調(diào)試成功的程序(當(dāng)然這跟你自己建立的數(shù)據(jù)庫(kù)是相喚基關(guān)的):
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class add extends JFrame {
private StudentUI userInterface;
private JButton clearButton, writeButton;
// 加載啟動(dòng)程序和建立數(shù)據(jù)庫(kù)的地址,遠(yuǎn)程和對(duì)本機(jī)的數(shù)據(jù)庫(kù)加載是不一樣得,這里給你一個(gè)對(duì)本機(jī)數(shù)據(jù)庫(kù)的操作
static final String JDBC_DRIVER = “(“oracle.jdbc.driver.OracleDriver”;
static final String DATABASE_URL = “oracle.jdbc.driver:剛才叫你記住的那個(gè)數(shù)據(jù)源的名字”;
// declare Connection and Statement for accessing
// and querying database
private Connection connection;
private Statement statement;
String sqlString ;
//set up column names
String names = { “學(xué) 號(hào)”,”姓 名”,”性 別”,”年 齡”,”所 在 系”};
// set up GUI
public Add()
{
super( “Add a record of students” );
initialize(); //connect to database
// create instance of reusable user interface
userInterface = new StudentUI( names ); // four textfields
getContentPane().add( userInterface, BorderLayout.CENTER );
// configure button doTask1 for use in this program
writeButton = userInterface.getDoTask1Button();
writeButton.setText( “保存” );
// register listener to call addRecord when button pressed
writeButton.addActionListener(
// anonymous inner class to handle writeButton event
new ActionListener() {
// call addRecord when button pressed
public void actionPerformed( ActionEvent event )
{
addRecord();
}
} // end anonymous inner class
); // end call to addActionListener
// configure button doTask2 for use in this program
clearButton = userInterface.getDoTask2Button();
clearButton.setText( “清除” );
// register listener to call userInterface clearFields() when button pressed
clearButton.addActionListener(
// anonymous inner class to handle clearButton event
new ActionListener() {
// call userInterface clearFields() when button pressed
public void actionPerformed( ActionEvent event )
{
userInterface.clearFields();
}
} // end anonymous inner class
); // end call to addActionListener
// register window listener to handle window closing event
addWindowListener(
// anonymous inner class to handle windowClosing event
new WindowAdapter() {
// add current record in GUI to file, then close file
public void windowClosing( WindowEvent event )
{
terminate(); //close databse
}
} // end anonymous inner class
); // end call to addWindowListener
setSize( 300, 200 );
setVisible( true );
} // end of constructor
// connect to database
public void initialize()
{
try {
Class.forName( JDBC_DRIVER );
// establish connection to database
connection = DriverManager.getConnection( DATABASE_URL,”sa”,null );
// create Statement for querying database
statement = connection.createStatement();
}
catch ( SQLException sqlException ) {
JOptionPane.showMessageDialog( null, sqlException.getMessage(),
“Database Error”, JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
// detect problems loading database driver
catch ( ClassNotFoundException classNotFound ) {
JOptionPane.showMessageDialog( null, classNotFound.getMessage(),
“Driver Not Found”, JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
} // end method openFile
// close database
public void terminate()
{
try {
statement.close();
connection.close();
}
// handle exceptions closing statement and connection
catch ( SQLException sqlException ) {
JOptionPane.showMessageDialog( null,
sqlException.getMessage(), “Database Error”,
JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
} // end method
// add record to file
public void addRecord()
{
String fieldValues = userInterface.getFieldValues();
// if sno field value is not empty
if ( ! fieldValues.equals( “” ) ) {
// output values to student
try {
int numberAge = Integer.parseInt(
fieldValues );
//define string for sql insert statement
String sqlInsert = “INSERT INTO student ” +
“VALUES (‘” +
fieldValues + “‘, ‘” +
fieldValues +”‘, ‘”+
fieldValues+ “‘, “
+numberAge+”,'”+fieldValues + “‘)”;
int result = statement.executeUpdate(sqlInsert);
if (result!=0) {
userInterface.clearFields();
JOptionPane.showMessageDialog( this,
“Inserted sucess!”, “Insert Result”,
JOptionPane.INFORMATION_MESSAGE );
}
} // end try
// process invalid age number
catch ( NumberFormatException formatException ) {
JOptionPane.showMessageDialog( this,
“Bad age number “, “Invalid Number Format”,
JOptionPane.ERROR_MESSAGE );
}
// process exceptions from file output
catch (SQLException ee)
{ System.out.println(ee);}
} //end of if sno field value is not empty
else //if sno field value is empty
JOptionPane.showMessageDialog( this,
“Bad sno number “, “Invalid Number Format”,
JOptionPane.ERROR_MESSAGE );
} // end method addRecord
public static void main( String args )
{
new AddStudentFrame();
}
} // end AddStudentFrame class
基本就這樣啦!不過那個(gè)界面的設(shè)計(jì)代碼就不給你啦!
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class BaseDao {
private Connection conn = null;
static{
try {
Class.forName(“oracle.jdbc.driver.OracleDriver”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public Connection getConnection(){
String url = “jdbc:oracle:thin:@192.168.1.100:1521:orcl”;
String user = “scott”;
String password = “tiger”;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public void closeConn() {
try {
if (!conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
}
}
}
關(guān)于oracle的使用,需要注手余意以下幾點(diǎn):
1,你在什么狀態(tài)下安裝的oracle,使用時(shí)必須是什么狀態(tài)(比如聯(lián)網(wǎng)狀態(tài)下安裝的oracle,使用時(shí)必須聯(lián)網(wǎng))
注:當(dāng)你山窮水盡的時(shí)候進(jìn)行2,3步。
2,當(dāng)你的ip發(fā)生改變是需要修改監(jiān)聽器的ip,(路徑如下:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora)打開文件,找到host=。(例我的HOST = 192.168.1.100)你可以把他修改為你的(host=你的ip)即可。
3,當(dāng)你修改了你的host那么你就要在如下目錄(D:\oracle\product\10.2.0\db_1)找到localhost文件夾,并把文件名修改為你的ip。
這是我個(gè)人陸信的一點(diǎn)小小感悟,希望對(duì)你有幫助早薯輪。
Class.forName(“oracle.jdbc.driver.OracleDriver”) new Instance ();
String url =”jdbc:oracle:thin:@localhost:1521:orcl”;
String user=”scott”;(銀譽(yù)用戶名殲搏槐)
String password=”tiger”;(密氏友碼)
Connection con=DriverManager.getConnection(url,user,password);
Statement stmt =conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql=”select * from “;
ResultSet rs=stmt.executeQuery(sql);
while(rs.next)
{
}
這就完成了簡(jiǎn)單查詢
如果要設(shè)置權(quán)限的話 要使用grant 語句
例如 :grant select,update on table table_name to user
我先給你連接數(shù)據(jù)庫(kù)的類吧!
步驟1
package test.procedure;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectOrcl {
String driver,url,user,pwd;
public ConnectOrcl(){
driver = “oracle.jdbc.driver.OracleDriver”薯凳;
url = “jdbc:oracle:thin:@127.0.0.1:1521:orcl”;
user = “scott”;
pwd = “tiger”;
}
public Connection getConn(){
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,user,pwd);
} catch (ClassNotFoundException e) {
// TODO 自動(dòng)數(shù)中旅生成 catch 塊
e.printStackTrace();
} catch (SQLException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
}
return conn;
}
// 關(guān)閉與數(shù)據(jù)庫(kù)的連接的方法
public void closeConn() {
try {
if (!conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
}
}
public static void main(String args){
if(conn != null){
system.out.println(“連接成培行功!”)
}
}
關(guān)于oracle數(shù)據(jù)庫(kù)java的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡(jiǎn)稱香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問快、穩(wěn)定!
名稱欄目:Oracle數(shù)據(jù)庫(kù)Java應(yīng)用開發(fā)簡(jiǎn)介(oracle數(shù)據(jù)庫(kù)java)
分享地址:http://fisionsoft.com.cn/article/dpophgj.html


咨詢
建站咨詢
