forget and forget

          能吃能睡是福;能忘是大福......

          posts - 39, comments - 26, trackbacks - 0, articles - 10
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JAVA面試題集(5)

          Posted on 2006-05-21 10:05 橘子 閱讀(83) 評論(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());

          }

          }

          }

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


          網站導航:
           
          主站蜘蛛池模板: 交城县| 北票市| 龙南县| 互助| 榕江县| 全椒县| 同江市| 保德县| 梅河口市| 湘潭县| 手游| 咸宁市| 双流县| 万山特区| 伊吾县| 辽阳市| 金华市| 温州市| 右玉县| 台湾省| 伊通| 盈江县| 雷山县| 光泽县| 铁力市| 西宁市| 绥宁县| 湘西| 龙州县| 阜城县| 文山县| 漠河县| 湖北省| 湾仔区| 桐庐县| 桂林市| 开阳县| 阿克苏市| 莲花县| 高州市| 红安县|