日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java jdbc连接oracle_Java使用JDBC连接Oracle 11gR2

發布時間:2024/9/30 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jdbc连接oracle_Java使用JDBC连接Oracle 11gR2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html下載Oracle 11gR2的數據庫驅動程序:ojdbc6.jar

下載完成后,將其放到JDK的jre\lib\ext下,如D:\dev\Java\jdk1.7.0_21\jre\lib\ext

(2)啟動oracle服務器端的監聽器和Oracle服務

啟動監聽器:

$ lsnrctl start

啟動Oracle服務:

$ sqlplus /nolog

SQL> conn / as sysdba

SQL> startup

1.簡單形式:

ConnOracle.java

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class ConnOracle{

public static void main(String[] args){

Connection conn = null;

Statement smt = null;

ResultSet rs = null;

try{

//1.加載數據庫驅動

//Class.forName("oracle.jdbc.driver.OracleDriver");//會拋出ClassNotFoundException

Class.forName("oracle.jdbc.OracleDriver");//會拋出ClassNotFoundException

//2.使用DriverManager獲取數據庫連接

conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.180:1521:orcl", "scott", "tiger");//會拋出SQLException

System.out.println("數據庫連接成功: "+conn);

//3.使用Connection來創建一個Statement對象

smt = conn.createStatement();//會拋出SQLException

//4.使用Statement對象執行SQL語句

/*

Statement有三種執行sql語句的方法:

1. execute可執行任何SQL語句--返回一個boolean值

如果執行后的第一個結果是ResultSet,則返回true,否則返回false

2. executeQuery 執行Select語句--返回查詢到的結果集

3. executeUpdate 用于執行DML語句和DDL語句--返回一個整數,執行DML代表被SQL語句影響的記錄條數;執行DDL語句返回0

*/

rs = smt.executeQuery("select * from emp");//會拋出SQLException

//5.操作結果集

/*

ResultSet對象有兩類方法操作查詢結果集

1. next()將記錄指針下移一行,first(),last()等

2. getXxx(列索引|列名)獲取有記錄指針指向行,特定列的值

*/

while(rs.next()){//會拋出SQLException

System.out.println(rs.getInt(1) + "\t"

+ rs.getString(2)+"\t"

+ rs.getString(3));

}

}

catch(ClassNotFoundException e){

e.printStackTrace();

}

catch(SQLException e){

e.printStackTrace();

}

finally{

try{

//6.回收數據庫資源

if(rs != null){

//關閉ResultSet

rs.close();//會拋出SQLException

}

if(smt != null){

//關閉Statement

smt.close();

}

if(conn != null){

//關閉Connection

conn.close();

}

}

catch(SQLException e){

e.printStackTrace();

}

}

}

}

運行結果:

2.抽象成一個類

(1)DBConn.java

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class DBConn{

private Connection conn = null;

private Statement smt = null;

private ResultSet rs = null;

//private static String DB_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

private static String DB_CLASS_NAME = "oracle.jdbc.OracleDriver"; //數據庫驅動類的字符串

private static String DB_URL = "jdbc:oracle:thin:@192.168.1.180:1521:orcl"; //數據庫URL

private static String USERNAME = "scott"; //登陸數據庫的用戶名

private static String PASSWORD = "tiger"; //密碼

/* 連接數據庫 */

private void getConn(){

try{

//1 加載數據庫驅動

Class.forName(DB_CLASS_NAME);

//2 使用DriverManager獲取數據庫連接

conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);

}

catch(ClassNotFoundException e){

e.printStackTrace();

}

catch(SQLException e){

e.printStackTrace();

}

if(conn == null){

System.err.println("警告:DriverManager.getConnection()獲得數據庫連接失敗.\r\n\r\n連接類型:"

+ DB_CLASS_NAME + "\r\n連接位置:" + DB_URL);

}

System.out.println("數據庫連接成功: "+conn);

}

/* 執行查詢語句 */

public ResultSet executeQuery(String sql){

getConn();

System.out.println("SQL:> "+sql);//測試使用,打印即將執行的SQL語句

try{

//3 使用Connection對象創建Statement對象

smt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

//4 使用Statement對象執行SQL語句

rs = smt.executeQuery(sql);

}

catch(SQLException e){

e.printStackTrace();

}

return rs;

}

/* 執行DDL和DML語句 */

public int executeUpdate(String sql){

int result = 0;

getConn();

System.out.println("SQL:> "+sql);//測試使用,打印即將執行的SQL語句

try{

//3 使用Connection對象創建Statement對象

smt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

//4 使用Statement對象執行SQL語句

result = smt.executeUpdate(sql);

}

catch(SQLException e){

e.printStackTrace();

}

return result;

}

/* 關閉數據庫連接 */

public void close(){

if(rs != null){

//關閉ResultSet

try{

rs.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

if(smt != null){

//關閉Statement

try{

smt.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

if(conn != null){

//關閉Connection

try{

conn.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

System.out.println("數據庫連接已關閉: "+conn);

}

}

(2)DBConn_Demo.java

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class DBConn_Demo{

public static void main(String[] args){

/* 1 執行查詢操作 */

DBConn db1 = new DBConn();

String sql1 = "select * from emp";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs1 = db1.executeQuery(sql1);

//操作結果集

try{

while(rs1.next()){

System.out.println(rs1.getInt(1) + "\t"

+ rs1.getString(2)+"\t"

+ rs1.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db1.close();

/* 2 執行DDL操作 */

DBConn db2 = new DBConn();

String sql2 = "create table demo(id int, name varchar(10), age int)";

int result1 = db2.executeUpdate(sql2);

System.out.println("有" + result1 + "條記錄受到影響!");

db2.close();

/* 3 執行插入操作 */

DBConn db3 = new DBConn();

String sql3 = "insert into demo values(1, 'huhu', 18)";

int result2 = db3.executeUpdate(sql3);

System.out.println("有" + result2 + "條記錄受到影響!");

db3.close();

/* 4 執行查詢操作 */

DBConn db4 = new DBConn();

String sql4 = "select * from demo";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs2 = db4.executeQuery(sql4);

//操作結果集

try{

while(rs2.next()){

System.out.println(rs2.getInt(1) + "\t"

+ rs2.getString(2)+"\t"

+ rs2.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db4.close();

/* 5 執行刪除操作 */

DBConn db5 = new DBConn();

String sql5 = "delete from demo";

int result3 = db5.executeUpdate(sql5);

System.out.println("有" + result3 + "條記錄受到影響!");

db5.close();

/* 6 執行查詢操作 */

DBConn db6 = new DBConn();

String sql6 = "select * from demo";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs3 = db6.executeQuery(sql6);

//操作結果集

try{

while(rs3.next()){

System.out.println(rs3.getInt(1) + "\t"

+ rs3.getString(2)+"\t"

+ rs3.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db6.close();

/* 7 執行DDL操作 */

DBConn db7 = new DBConn();

String sql7 = "drop table demo";

int result = db7.executeUpdate(sql7);

System.out.println("有" + result + "條記錄受到影響!");

db7.close();

}

}

運行結果:

3.將數據庫連接信息保存到一個dbconfig.properties配置文件中

這樣的做法好處是:當我們需要把應用程序從開發環境移植到生產環境時,無需修改源代碼,只需要修改dbconfig.properties配置文件即可。

(1)dbconfig.properties:

#DB_CLASS_NAME(數據庫驅動類的類名)

DB_CLASS_NAME=oracle.jdbc.OracleDriver

#DB_CLASS_NAME=com.mysql.jdbc.Driver

#DB_URL(要連接數據庫的地址)

DB_URL=jdbc:oracle:thin:@192.168.1.180:1521:orcl

#DB_URL=jdbc:mysql://127.0.0.1:3306/test

#USERNAME(數據庫用戶)

USERNAME=scott

#USERNAME=root

#PASSWORD(密碼)

PASSWORD=tiger

#PASSWORD=

(2)DBConn1.java:

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.io.FileInputStream;

import java.util.Properties;

public class DBConn1{

private Connection conn = null;

private Statement smt = null;

private ResultSet rs = null;

//private static String DB_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

private static String DB_CLASS_NAME = "oracle.jdbc.OracleDriver"; //數據庫驅動類的字符串

private static String DB_URL = "jdbc:oracle:thin:@192.168.1.180:1521:orcl"; //數據庫URL

private static String USERNAME = "scott"; //登陸數據庫的用戶名

private static String PASSWORD = "tiger"; //密碼

private static String propFileName = "dbconfig.properties"; //指定資源文件保存的位置

private static Properties props = new Properties();

public DBConn1(){

try{

//使用Properties類來加載屬性文件

FileInputStream in=new FileInputStream(propFileName);

props.load(in);

DB_CLASS_NAME = props.getProperty("DB_CLASS_NAME");

DB_URL = props.getProperty("DB_URL");

USERNAME = props.getProperty("USERNAME");

PASSWORD = props.getProperty("PASSWORD");

}

catch (Exception e) {

e.printStackTrace();

}

}

/* 連接數據庫 */

private void getConn(){

try{

//1 加載數據庫驅動

Class.forName(DB_CLASS_NAME);

//2 使用DriverManager獲取數據庫連接

conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);

}

catch(ClassNotFoundException e){

e.printStackTrace();

}

catch(SQLException e){

e.printStackTrace();

}

if(conn == null){

System.err.println("警告:DriverManager.getConnection()獲得數據庫連接失敗.\r\n\r\n連接類型:"

+ DB_CLASS_NAME + "\r\n連接位置:" + DB_URL);

}

//System.out.println("數據庫連接成功: "+conn);

}

/* 執行查詢語句 */

public ResultSet executeQuery(String sql){

getConn();

System.out.println("SQL:> "+sql);//測試使用,打印即將執行的SQL語句

try{

//3 使用Connection對象創建Statement對象

smt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

//4 使用Statement對象執行SQL語句

rs = smt.executeQuery(sql);

}

catch(SQLException e){

e.printStackTrace();

}

return rs;

}

/* 執行DDL和DML語句 */

public int executeUpdate(String sql){

int result = 0;

getConn();

System.out.println("SQL:> "+sql);//測試使用,打印即將執行的SQL語句

try{

//3 使用Connection對象創建Statement對象

smt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

//4 使用Statement對象執行SQL語句

result = smt.executeUpdate(sql);

}

catch(SQLException e){

e.printStackTrace();

}

return result;

}

/* 關閉數據庫連接 */

public void close(){

if(rs != null){

//關閉ResultSet

try{

rs.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

if(smt != null){

//關閉Statement

try{

smt.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

if(conn != null){

//關閉Connection

try{

conn.close();

}

catch(SQLException e){

e.printStackTrace();

}

}

//System.out.println("數據庫連接已關閉: "+conn);

}

}

(3)DBConn1_Demo1.java:

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class DBConn1_Demo1{

public static void main(String[] args){

/* 1 執行查詢操作 */

DBConn1 db1 = new DBConn1();

String sql1 = "select * from emp";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs1 = db1.executeQuery(sql1);

//操作結果集

try{

while(rs1.next()){

System.out.println(rs1.getInt(1) + "\t"

+ rs1.getString(2)+"\t"

+ rs1.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db1.close();

/* 2 執行DDL操作 */

DBConn1 db2 = new DBConn1();

String sql2 = "create table demo(id int, name varchar(10), age int)";

int result1 = db2.executeUpdate(sql2);

System.out.println("有" + result1 + "條記錄受到影響!");

db2.close();

/* 3 執行插入操作 */

DBConn1 db3 = new DBConn1();

String sql3 = "insert into demo values(1, 'huhu', 18)";

int result2 = db3.executeUpdate(sql3);

System.out.println("有" + result2 + "條記錄受到影響!");

db3.close();

/* 4 執行查詢操作 */

DBConn1 db4 = new DBConn1();

String sql4 = "select * from demo";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs2 = db4.executeQuery(sql4);

//操作結果集

try{

while(rs2.next()){

System.out.println(rs2.getInt(1) + "\t"

+ rs2.getString(2)+"\t"

+ rs2.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db4.close();

/* 5 執行刪除操作 */

DBConn1 db5 = new DBConn1();

String sql5 = "delete from demo";

int result3 = db5.executeUpdate(sql5);

System.out.println("有" + result3 + "條記錄受到影響!");

db5.close();

/* 6 執行查詢操作 */

DBConn1 db6 = new DBConn1();

String sql6 = "select * from demo";//字符串型的sql語句末尾不要帶分號

//執行SQL語句,返回結果集

ResultSet rs3 = db6.executeQuery(sql6);

//操作結果集

try{

while(rs3.next()){

System.out.println(rs3.getInt(1) + "\t"

+ rs3.getString(2)+"\t"

+ rs3.getString(3));

}

}

catch(SQLException e){

e.printStackTrace();

}

db6.close();

/* 7 執行DDL操作 */

DBConn1 db7 = new DBConn1();

String sql7 = "drop table demo";

int result = db7.executeUpdate(sql7);

System.out.println("有" + result + "條記錄受到影響!");

db7.close();

}

}

運行結果:

大小: 73.9 KB

大小: 31.9 KB

大小: 12.2 KB

大小: 8.6 KB

大小: 55.7 KB

大小: 13.8 KB

分享到:

2013-06-05 01:27

瀏覽 5068

評論

總結

以上是生活随笔為你收集整理的java jdbc连接oracle_Java使用JDBC连接Oracle 11gR2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。