java串連Oracle資料庫,javaoracle資料庫

來源:互聯網
上載者:User

java串連Oracle資料庫,javaoracle資料庫

Oracle資料庫先建立一個表和添加一些資料

1.先在Oracle資料庫中建立一個student表:

1 create table student2 (3        id number(11) not null primary key,4        stu_name varchar(16) not null,5        gender number(11) default null,6        age number(11) default null,7        address varchar(128) default null8 );

2.向表中增添一些資料

insert into student values('1','王小軍','1','17','北京市和平裡七區30號樓7門102')

MyEclipse裡編寫java代碼

1.將ojdbc6.jar匯入項目中

   先建立一個項目,然後在滑鼠移到項目上右鍵-->new-->folder;folder name:lib;這樣就在項目中建立了一個檔案夾lib;然後將ojdbc6.jar包匯入該檔案夾中

   該包分享地址: 連結:http://pan.baidu.com/s/1eRJbTMq 密碼:eofs

   滑鼠移到該包上;右鍵-->build path-->add to build path;

   

2.建立一個類,開始編碼

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;public class OperateOracle {    // 定義串連所需的字串    // 192.168.0.X是本機地址(要改成自己的IP地址),1521連接埠號碼,XE是精簡版Oracle的預設資料庫名    private static String USERNAMR = "orcl";    private static String PASSWORD = "orcl";    private static String DRVIER = "oracle.jdbc.OracleDriver";    private static String URL = "jdbc:oracle:thin:@192.168.0.X:1521:xe";    // 建立一個資料庫連接    Connection connection = null;    // 建立先行編譯語句對象,一般都是用這個而不用Statement    PreparedStatement pstm = null;    // 建立一個結果集對象    ResultSet rs = null;    /**     * 向資料庫中增加資料     * 首先擷取表內資料總數,總數+1為新增資料的id值     * @param stuName:學生姓名     * @param gender:學生性別,1表示男性,2表示女性     * @param age:學生年齡     * @param address:學生住址     */    public void AddData(String stuName, int gender, int age, String address) {        connection = getConnection();        // String sql =        // "insert into student values('1','王小軍','1','17','北京市和平裡七區30號樓7門102')";        String sql = "select count(*) from student where 1 = 1";        String sqlStr = "insert into student values(?,?,?,?,?)";        int count = 0;        try {            // 計算資料庫student表中資料總數            pstm = connection.prepareStatement(sql);            rs = pstm.executeQuery();            while (rs.next()) {                count = rs.getInt(1) + 1;                System.out.println(rs.getInt(1));            }            // 執行插入資料操作            pstm = connection.prepareStatement(sqlStr);            pstm.setInt(1, count);            pstm.setString(2, stuName);            pstm.setInt(3, gender);            pstm.setInt(4, age);            pstm.setString(5, address);            pstm.executeUpdate();        } catch (SQLException e) {            e.printStackTrace();        } finally {            ReleaseResource();        }    }    /**     * 向資料庫中刪除資料     * @param stuName:根據姓名刪除資料     */    public void DeleteData(String stuName) {        connection = getConnection();        String sqlStr = "delete from student where stu_name=?";        System.out.println(stuName);        try {            // 執行刪除資料操作            pstm = connection.prepareStatement(sqlStr);            pstm.setString(1, stuName);            pstm.executeUpdate();        } catch (SQLException e) {            e.printStackTrace();        } finally {            ReleaseResource();        }    }    /**     * 向資料庫中修改資料     * @param stuName:學生姓名,根據此值查詢要修改的某行值     * @param gender     * @param age     * @param address     */    public void UpdateData(String stuName, int gender, int age, String address) {        connection = getConnection();        String sql = "select id from student where 1 = 1 and stu_name = ?";        String sqlStr = "update student set stu_name=?,gender=?,age=?,address=? where id=?";        int count = 0;        try {            // 計算資料庫student表中資料總數            pstm = connection.prepareStatement(sql);            pstm.setString(1, stuName);            rs = pstm.executeQuery();            while (rs.next()) {                count = rs.getInt(1);                System.out.println(rs.getInt(1));            }            // 執行插入資料操作            pstm = connection.prepareStatement(sqlStr);            pstm.setString(1, stuName);            pstm.setInt(2, gender);            pstm.setInt(3, age);            pstm.setString(4, address);            pstm.setInt(5, count);            pstm.executeUpdate();        } catch (SQLException e) {            e.printStackTrace();        } finally {            ReleaseResource();        }    }    /**     * 向資料庫中查詢資料     */    public void SelectData() {        connection = getConnection();        String sql = "select * from student where 1 = 1";        try {            pstm = connection.prepareStatement(sql);            rs = pstm.executeQuery();            while (rs.next()) {                String id = rs.getString("id");                String name = rs.getString("stu_name");                String gender = rs.getString("gender");                String age = rs.getString("age");                String address = rs.getString("address");                System.out.println(id + "\t" + name + "\t" + gender + "\t"                        + age + "\t" + address);            }        } catch (SQLException e) {            e.printStackTrace();        } finally {            ReleaseResource();        }    }    /**     * 使用ResultSetMetaData計算資料行數     */    public void SelectData2() {        connection = getConnection();        String sql = "select * from employees where 1 = 1";        int count = 0;        try {            pstm = connection.prepareStatement(sql);            rs = pstm.executeQuery();            while (rs.next()) {                count++;            }            ResultSetMetaData rsmd = rs.getMetaData();            int cols_len = rsmd.getColumnCount();            System.out.println("count=" + count + "\tcols_len=" + cols_len);        } catch (SQLException e) {            e.printStackTrace();        } finally {            ReleaseResource();        }    }    /**     * 擷取Connection對象     *      * @return     */    public Connection getConnection() {        try {            Class.forName(DRVIER);            connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD);            System.out.println("成功串連資料庫");        } catch (ClassNotFoundException e) {            throw new RuntimeException("class not find !", e);        } catch (SQLException e) {            throw new RuntimeException("get connection error!", e);        }        return connection;    }    /**     * 釋放資源     */    public void ReleaseResource() {        if (rs != null) {            try {                rs.close();            } catch (SQLException e) {                e.printStackTrace();            }        }        if (pstm != null) {            try {                pstm.close();            } catch (SQLException e) {                e.printStackTrace();            }        }        if (connection != null) {            try {                connection.close();            } catch (SQLException e) {                e.printStackTrace();            }        }    }}

3.建立一個測試類別

public class Test {    public static void main(String[] args) {        /**         * 增刪改查完成,但是有一定局限性         * 1.增  問題不大         * 2.刪  要給出一個值去刪除(可能值不存在-->沒有處理機制,值不唯一怎麼處理?)         * 3.改  同刪的問題         * 4.查  問題不大         */        //建立OperateOracle對象        OperateOracle oo=new OperateOracle();        //測試增加資料操作        //oo.AddData("孫中山",1,25,"北京市海澱區紅旗路111號");        //測試刪除資料操作        //oo.DeleteData("孫中山");        //測試更新資料操作        oo.UpdateData("孫中山",1,30,"北京市東城區嶽山路11號");        //測試查詢資料操作        //oo.SelectData();                //測試ResultSetMetaData類        //oo.SelectData2();    }}

正如測試類別中所注釋的,此處只可按照正確的方式去串連Oracle資料庫,操作增刪改查操作,但是對於一些錯誤操作的處理機制還不夠完善。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.