qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          集算器訪問數(shù)據(jù)庫的配置

           集算器支持包括數(shù)據(jù)庫在內(nèi)的多種異構(gòu)數(shù)據(jù)源。這里,我們通過例子來看一下集算器訪問數(shù)據(jù)庫的方法。
            集算器可以連接數(shù)據(jù)庫的jdbc驅(qū)動,也可以通過jdbc-odbc橋連接數(shù)據(jù)庫。由于版權(quán)的原因,使用集算器的程序員需要自行準(zhǔn)備數(shù)據(jù)庫的jdbc或者odbc驅(qū)動。Jdbc驅(qū)動jar包準(zhǔn)備好之后,需要放入集算器IDE安裝目錄的/common/jdbc中,例如:C:\Program Files (x86)\MicroInsight\common\jdbc目錄中。
            集算器集成開發(fā)環(huán)境的ODBC配置界面如下:
            集算器的集成開發(fā)環(huán)境提供了多種數(shù)據(jù)庫的jdbc配置提示,包括:SQLserver、Oracle、DB2、Sybase、Access、mysql、hsql、teradata、postgres等。如果需要連接的數(shù)據(jù)庫不在這個范圍內(nèi),可以使用other類型來添加。配置界面如下:
            驅(qū)動jar包放好,配置完成之后,在IDE中就可以很方便的連接數(shù)據(jù)庫,取出表中的數(shù)據(jù):
            上圖中A1單元格連接上了一個名為demo的hsql數(shù)據(jù)庫,A2單元使用sql語句查詢了employee表,作為集算器的序表存入了A2單元格這個變量中,arg1是外部傳入的參數(shù)。A3單元格關(guān)閉了數(shù)據(jù)庫連接,A4單元格對外返回查詢結(jié)果。集算器的集成開發(fā)環(huán)境右下角紅框中可以顯示demo數(shù)據(jù)庫的表名、字段名,可以方便程序員書寫sql語句。
            和集算器提供的其他函數(shù)一樣,query函數(shù)包含選項(xiàng)和參數(shù)。如果寫成query@1(“select * from employee”),@1是表示使用了1選項(xiàng),查看函數(shù)說明可知,是僅僅返回sql語句取出的第一條記錄。而括號中是參數(shù),上圖的括號中是一條sql語句的字符串,沒有其他參數(shù),也就是說其他所有的參數(shù)都使用了默認(rèn)值。
            上圖中的集算器網(wǎng)格程序可以集成到Java應(yīng)用中,作為集算器jdbc驅(qū)動被Java程序調(diào)用,具體方法是:
            1、  準(zhǔn)備dfx文件。
            將集算器程序保存成test.dfx。
            2、  部署集算器jar包。
            將調(diào)用集算器程序所必須的jar包放入Java應(yīng)用的classpath中。如果是web應(yīng)用,可以放在WEB-INF/lib目錄下。這些jar包都位于集算器IDE的安裝目錄\esProc\lib下,包括:
            dm.jar                          集算器計算引擎及JDBC驅(qū)動包
            poi-3.7-20101029.jar            處理對Excel文件的讀寫
            log4j_128.jar             處理日志
            icu4j_3_4_5.jar        處理國際化
            dom4j-1.6.1.jar        解析配置文件
            3、  部署數(shù)據(jù)庫驅(qū)動jar包。
            將集算器連接數(shù)據(jù)庫所需要的數(shù)據(jù)庫jdbc驅(qū)動包也放入Java應(yīng)用的classpath中。例如:demo數(shù)據(jù)庫的hsql.jar。
            4、  配置dfxConfig.xml、config.xml文件。
            config.xml文件中包含了集算器的基本配置信息,如注冊碼、尋址路徑、主目錄、數(shù)據(jù)源配置等,可以在集算器安裝目錄的esProc\config路徑下找到,其中存儲的信息與集算器的選項(xiàng)頁面中設(shè)定相同。dfxConfig.xml可以在安裝目錄esProc\classes中找到。這里介紹集算器連接數(shù)據(jù)庫的部分配置,其他配置參見集算器教程。
           1)配置數(shù)據(jù)源的方式之一:直接配置數(shù)據(jù)庫數(shù)據(jù)源連接參數(shù)。
            config.xml文件:
          <DBList>
          <!-- 數(shù)據(jù)源名稱,必須與dfx文件中的數(shù)據(jù)源名稱一致 -->
          <DBname="demo">
          <propertyname="url" value="jdbc:hsqldb:hsql://127.0.0.1/demo"/>
          <propertyname="driver" value="org.hsqldb.jdbcDriver"/>
          <propertyname="type" value="HSQL"/>
          <propertyname="user" value="sa"/>
          <propertyname="password" value=""/>
          <propertyname="batchSize" value="1000"/>
          <!--
          是否自動連接。如果設(shè)定為true,則可以直接使用db.query()函數(shù)來訪問數(shù)據(jù)庫;如果為false,則不會自動連接,使用前必須用connect(db)語句連接。
          -->
          <propertyname="autoConnect" value="true"/>
          <property name="useSchema"value="false"/>
          <propertyname="addTilde" value="false"/>
          </DB>
          </DBList>
            2)配置數(shù)據(jù)源的方式之二:在Java應(yīng)用中配置連接池和jndi,在dfxConfig.xml文件中指定jndi名稱。
            dfxConfig.xml文件:
          <jndi-ds-configs>
          <!-- jndi前綴 -->
          <jndi-prefix>java:comp/env</jndi-prefix>
          <!-- 數(shù)據(jù)源名稱,必須與dfx文件中的數(shù)據(jù)源名稱一致 -->
          <jndi-ds-config>
          <name>demo</name>
          <dbType>HSQL</dbType>
          <dbCharset>ISO-8859-1</dbCharset>
          <clientCharset>ISO-8859-1</clientCharset>
          <needTranContent>false</needTranContent>
          <needTranSentence>false</needTranSentence>
          <!--
          是否自動連接。如果設(shè)定為true,則可以直接使用db.query()函數(shù)來訪問數(shù)據(jù)庫;如果為false,則不會自動連接,使用前必須用connect(db)語句連接。
          -->
          <autoConnect>true</autoConnect>
          </jndi-ds-config>
          </jndi-ds-configs>
            需要說明的是:
            配置文件的名稱必須為config.xml和dfxConfig.xml,不能改變。
            在配置數(shù)據(jù)庫連接信息時,要注意不能循環(huán)調(diào)用,不能將集算器JDBC本身作為數(shù)據(jù)源在配置中使用。
            如果兩種方式都配置了同名的數(shù)據(jù)源,就以config.xml中的為準(zhǔn)。
            5、  部署dfxConfig.xml、config.xml和test.dfx文件。
            將dfxConfig.xml、config.xml放入Java應(yīng)用的類路徑下(classpath),也可以直接打包到dm.jar中。
            將test.dfx文件放到Java應(yīng)用的類路徑下,也可以放到dfxConfig.xml文件的<paths/>節(jié)點(diǎn)指定的絕對路徑中。
            6、  在java程序中調(diào)用test.dfx。
            如果集算器 JDBC的連接串中使用了...?config=...;即用該.xml文件中的配置,忽略config.xml中的定義;連接串中無config參數(shù)時則用默認(rèn)配置。
            例如:con=DriverManager.getConnection("jdbc:esproc:local://?config=myconfig.xml");則使用myconfig.xml中的定義。
            樣例代碼如下:
          public voidtestDataServer(){
          Connection con = null;
          com.esproc.jdbc.InternalCStatementst;
          com.esproc.jdbc.InternalCStatement st2;
          try{
          //建立連接
          Class.forName("com.esproc.jdbc.InternalDriver");
          con=DriverManager.getConnection("jdbc:esproc:local://");
          //調(diào)用存儲過程,其中test是dfx的文件名
          st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("calltest(?)");
          //設(shè)置參數(shù)
          st.setObject(1,"3");
          //下面的語句和上面的調(diào)用方法效果相同
          st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("calltest(3)");
          //執(zhí)行存儲過程
          st.execute();
          //獲取結(jié)果集
          ResultSet set =st.getResultSet();
          }
          catch(Exception e){
          System.out.println(e);
          }
          finally{
          //關(guān)閉連接
          if(con!=null) {
          try {
          con.close();
          }
          catch(Exception e){
          System.out.println(e);
          }
          }
          }
          }

          posted on 2014-09-26 11:33 順其自然EVO 閱讀(263) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 富平县| 交口县| 兴义市| 玉林市| 正安县| 民丰县| 资兴市| 孝感市| 将乐县| 通化市| 静宁县| 濮阳县| 和静县| 汉中市| 榆林市| 隆林| 霸州市| 乳源| 永善县| 海林市| 故城县| 鞍山市| 西平县| 万年县| 正镶白旗| 金湖县| 封丘县| 宁晋县| 康马县| 金寨县| 环江| 宜阳县| 三穗县| 女性| 景德镇市| 个旧市| 西吉县| 二连浩特市| 手机| 松原市| 友谊县|