<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數(shù)據(jù)加載中……
    derby 例子(轉(zhuǎn)載)
    2008年4月10日  edited by dingdangxiaoma
    轉(zhuǎn)載別人的寫的例子:
    http://blog.csdn.net/Chinajash/archive/2007/01/08/1477568.aspx

    Derby并不是一個(gè)新的數(shù)據(jù)庫產(chǎn)品,它是由IBM捐獻(xiàn)給Apache的DB項(xiàng)目的一個(gè)純Java數(shù)據(jù)庫,JDK6.0里面帶的這個(gè)Derby的版 本是10.2.1.7,支持存儲(chǔ)過程和觸發(fā)器;有兩種運(yùn)行模式,一種是作為嵌入式數(shù)據(jù)庫,另一種是作為網(wǎng)絡(luò)數(shù)據(jù)庫,前者的數(shù)據(jù)庫服務(wù)器和客戶端都在同一個(gè) JVM里面運(yùn)行,后者允許數(shù)據(jù)庫服務(wù)器端和客戶端不在同一個(gè)JVM里面,而且允許這兩者在不同的物理機(jī)器上.值得注意的是JDK6里面的這個(gè)Derby支 持JDK6的新特性JDBC 4.0規(guī)范(JSR 221),現(xiàn)在我們?nèi)绻毩?xí)JDBC的用法,沒有必要單獨(dú)裝一個(gè)數(shù)據(jù)庫產(chǎn)品了,直接用Derby就行.安裝完JDK6.0后,Derby會(huì)被安裝到<JDK6_HOME>/db下面,在<JDK6_HOME>/db/demo/programs下面還有一些示例程序,演示了如何啟動(dòng),連接Derby數(shù)據(jù)庫以及JDBC API的使用.下面分兩種情況演示一下如何用代碼操作Derby數(shù)據(jù)庫,一種是嵌入式數(shù)據(jù)庫,一種是網(wǎng)絡(luò)數(shù)據(jù)庫.

    一.嵌入式數(shù)據(jù)庫

    package db;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;

    public class EmbeddedDerbyTester {
        public static void main(String[] args) {
            String driver = "org.apache.derby.jdbc.EmbeddedDriver";// 在derby.jar里面
            String dbName = "EmbeddedDB";
            String dbURL = "jdbc:derby:" + dbName + ";create=true";// create=true表示當(dāng)數(shù)據(jù)庫不存在時(shí)就創(chuàng)建它
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(dbURL);// 啟動(dòng)嵌入式數(shù)據(jù)庫
                Statement st = conn.createStatement();
            //    st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");// 創(chuàng)建foo表
                st.executeUpdate("insert into foo(FOOID,FOONAME) values (2,'chinajash2')");// 插入一條數(shù)據(jù)
                ResultSet rs = st.executeQuery("select * from foo");// 讀取剛插入的數(shù)據(jù)
                while (rs.next()) {
                    int id = rs.getInt(1);
                    String name = rs.getString(2);
                    System.out.println("id=" + id + ";name=" + name);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    二.網(wǎng)絡(luò)數(shù)據(jù)庫
    package db;

    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;

    import org.apache.derby.drda.NetworkServerControl;

    public class NetworkServerDerbyTester {
        public static void main(String[] args) {
            String driver = "org.apache.derby.jdbc.ClientDriver";// 在derbyclient.jar里面
            String dbName = "NetworkDB";
            String connectionURL = "jdbc:derby://localhost:1527/" + dbName
                    + ";create=true";
            try {
                /*
                 * 創(chuàng)建Derby網(wǎng)絡(luò)服務(wù)器,默認(rèn)端口是1527,也可以通過運(yùn)行
                 * <Derby_Home>"frameworks"NetworkServer"bin"startNetworkServer.bat
                 * 來創(chuàng)建并啟動(dòng)Derby網(wǎng)絡(luò)服務(wù)器,如果是Unix,用startNetworkServer.ksh
                 */
                NetworkServerControl derbyServer = new NetworkServerControl();// NetworkServerControl類在derbynet.jar里面
                PrintWriter pw = new PrintWriter(System.out);// 用系統(tǒng)輸出作為Derby數(shù)據(jù)庫的輸出
                derbyServer.start(pw);// 啟動(dòng)Derby服務(wù)器
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(connectionURL);
                // do something
                Statement st = conn.createStatement();
                //st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");// 創(chuàng)建foo表
                st.executeUpdate("insert into foo(FOOID,FOONAME) values (2,'chinajash2')");// 插入一條數(shù)據(jù)
                ResultSet rs = st.executeQuery("select * from foo");// 讀取剛插入的數(shù)據(jù)
                while (rs.next()) {
                    int id = rs.getInt(1);
                    String name = rs.getString(2);
                    System.out.println("id=" + id + ";name=" + name);
                }
                derbyServer.shutdown();// 關(guān)閉Derby服務(wù)器
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    例子都是一樣子的,稍有改動(dòng)。

    posted on 2008-04-10 15:48 叮當(dāng)小馬 閱讀(564) 評論(1)  編輯  收藏 所屬分類: DataBase

    評論

    # re: derby 例子(轉(zhuǎn)載) 2008-04-10 15:54 叮當(dāng)小馬

    運(yùn)行上面的兩個(gè)例子,都會(huì)在根目錄下產(chǎn)生兩個(gè)文件夾,那兩個(gè)文件夾就是所生成的數(shù)據(jù)庫,我用的工具是myeclipse 會(huì)在workspace 工程目錄下產(chǎn)生這兩個(gè)數(shù)據(jù)庫文件夾。
      回復(fù)  更多評論    

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 尤物永久免费AV无码网站| 一级白嫩美女毛片免费| 日本亚洲欧洲免费天堂午夜看片女人员| 精品久久久久久久免费人妻| 亚洲私人无码综合久久网| 成人免费毛片内射美女-百度| 亚洲男女一区二区三区| 国产精品免费网站| 亚洲欧洲另类春色校园网站| 毛片免费全部免费观看| 亚洲在成人网在线看| **俄罗斯毛片免费| 亚洲最大福利视频| 国产免费无遮挡精品视频| 又粗又长又爽又长黄免费视频| 一区二区三区亚洲视频| 美女羞羞视频免费网站| 亚洲综合色区在线观看| 免费污视频在线观看| 久久久久亚洲AV片无码下载蜜桃| 久久久久国色av免费看| va天堂va亚洲va影视中文字幕| 大地资源免费更新在线播放| 精品亚洲成a人在线观看| 久久久久亚洲av成人无码电影| 成人av片无码免费天天看| 久久久久亚洲AV无码麻豆| 白白国产永久免费视频| 国产精品福利片免费看| 亚洲色偷偷av男人的天堂| 欧美男同gv免费网站观看 | 亚洲2022国产成人精品无码区| 免费观看久久精彩视频| 亚洲香蕉在线观看| 亚洲精品视频免费观看| 久久免费看少妇高潮V片特黄| 亚洲欧洲日韩极速播放| 久久精品国产亚洲一区二区三区| 精品一区二区三区免费毛片爱| 亚洲国产成人无码AV在线| 国产亚洲精品无码成人|