隨筆-208  評論-469  文章-30  trackbacks-0

          Jdbc、Jdo方面

          1、可能會讓你寫一段Jdbc連Oracle的程序,并實現數據查詢.

          答:程序如下:

          package hello.ant;

          import java.sql.*;

          public class jdbc

          {

          String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";

          String theUser="admin";

          String thePw="manager";

          Connection c=null;

          Statement conn;

          ResultSet rs=null;

          public jdbc()

          {

          try{

          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

          c = DriverManager.getConnection(dbUrl,theUser,thePw);

          conn=c.createStatement();

          }catch(Exception e){

          e.printStackTrace();

          }

          }

          public boolean executeUpdate(String sql)

          {

          try

          {

          conn.executeUpdate(sql);

          return true;

          }

          catch (SQLException e)

          {

          e.printStackTrace();

          return false;

          }

          }

          public ResultSet executeQuery(String sql)

          {

          rs=null;

          try

          {

          rs=conn.executeQuery(sql);

          }

          catch (SQLException e)

          {

          e.printStackTrace();

          }

          return rs;

          }

          public void close()

          {

          try

          {

          conn.close();

          c.close();

          }

          catch (Exception e)

          {

          e.printStackTrace();

          }

          }

          public static void main(String[] args)

          {

          ResultSet rs;

          jdbc conn = new jdbc();

          rs=conn.executeQuery("select * from test");

          try{

          while (rs.next())

          {

          System.out.println(rs.getString("id"));

          System.out.println(rs.getString("name"));

          }

          }catch(Exception e)

          {

          e.printStackTrace();

          }

          }

          }

          2、Class.forName的作用?為什么要用?

          答:調用該訪問返回一個以字符串指定類名的類的對象。

          3、Jdo是什么?

          答:JDO是Java對象持久化的新的規范,為java data object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。

          4、在ORACLE大數據量下的分頁解決方法。一般用截取ID方法,還有是三層嵌套方法。

          答:一種分頁方法

          <%

          int i=1;

          int numPages=14;

          String pages = request.getParameter("page") ;

          int currentPage = 1;

          currentPage=(pages==null)?(1):{Integer.parseInt(pages)}

          sql = "select count(*) from tables";

          ResultSet rs = DBLink.executeQuery(sql) ;

          while(rs.next()) i = rs.getInt(1) ;

          int intPageCount=1;

          intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);

          int nextPage ;

          int upPage;

          nextPage = currentPage+1;

          if (nextPage>=intPageCount) nextPage=intPageCount;

          upPage = currentPage-1;

          if (upPage<=1) upPage=1;

          rs.close();

          sql="select * from tables";

          rs=DBLink.executeQuery(sql);

          i=0;

          while((i<numPages*(currentPage-1))&&rs.next()){i++;}

          %>

          //輸出內容

          //輸出翻頁連接

          合計:<%=currentPage%>/<%=intPageCount%><a href="List.jsp?page=1">第一頁</a><a

          ?

          href="List.jsp?page=<%=upPage%>">上一頁</a>

          <%

          for(int j=1;j<=intPageCount;j++){

          if(currentPage!=j){

          %>

          <a href="list.jsp?page=<%=j%>">[<%=j%>]</a>

          <%

          }else{

          out.println(j);

          }

          }

          %>

          <a href="List.jsp?page=<%=nextPage%>">下一頁</a><a href="List.jsp?page=<%=intPageCount%>">最后頁

          ?

          </a>

          Xml方面

          1、xml有哪些解析技術?區別是什么?

          答:有DOM,SAX,STAX等

          DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機訪問SAX:不現于DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問

          STAX:Streaming API for XML (StAX)

          2、你在項目中用到了xml技術的哪些方面?如何實現的?

          答:用到了數據存貯,信息配置兩方面。在做數據交換平臺時,將不能數據源的數據組裝成XML文件,然后將XML文件壓縮打包加密后通過網絡傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關信息進行處理。在做軟件配置時,利用XML可以很方便的進行,軟件的各種配置參數都存貯在XML文件中。

          3、用jdom解析xml文件時如何解決中文問題?如何解析?

          答:看如下代碼,用編碼方式加以解決

          package test;

          import java.io.*;

          public class DOMTest

          {

          private String inFile = "c:\people.xml";

          private String outFile = "c:\people.xml";

          public static void main(String args[])

          {

          new DOMTest();

          }

          public DOMTest()

          {

          try

          {

          javax.xml.parsers.DocumentBuilder builder =

          javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();

          org.w3c.dom.Document doc = builder.newDocument();

          org.w3c.dom.Element root = doc.createElement("老師");

          org.w3c.dom.Element wang = doc.createElement("王");

          org.w3c.dom.Element liu = doc.createElement("劉");

          wang.appendChild(doc.createTextNode("我是王老師"));

          root.appendChild(wang);

          doc.appendChild(root);

          javax.xml.transform.Transformer transformer =

          javax.xml.transform.TransformerFactory.newInstance().newTransformer();

          transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");

          transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");

          ?

          ?

          transformer.transform(new javax.xml.transform.dom.DOMSource(doc),

          new

          ?

          javax.xml.transform.stream.StreamResult(outFile));

          }

          catch (Exception e)

          {

          System.out.println (e.getMessage());

          }

          }

          }

          posted on 2006-11-29 01:05 EricWong 閱讀(183) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 津南区| 崇信县| 南乐县| 越西县| 苍南县| 新巴尔虎左旗| 建水县| 河北省| 凌海市| 襄汾县| 闵行区| 二连浩特市| 东至县| 绥棱县| 西乌珠穆沁旗| 湖北省| 闵行区| 镇安县| 德州市| 廊坊市| 兴业县| 衡水市| 滕州市| 沈阳市| 光泽县| 阿克苏市| 渝北区| 丹凤县| 鸡东县| 扶绥县| 澎湖县| 达尔| 万荣县| 修水县| 龙山县| 福鼎市| 丽水市| 巢湖市| 德兴市| 河东区| 唐山市|