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

          Jdbc、Jdo方面

          1、可能會讓你寫一段Jdbc連Oracle的程序,并實(shí)現(xiàn)數(shù)據(jù)查詢.

          答:程序如下:

          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的作用?為什么要用?

          答:調(diào)用該訪問返回一個(gè)以字符串指定類名的類的對象。

          3、Jdo是什么?

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

          4、在ORACLE大數(shù)據(jù)量下的分頁解決方法。一般用截取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++;}

          %>

          //輸出內(nèi)容

          //輸出翻頁連接

          合計(jì):<%=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有哪些解析技術(shù)?區(qū)別是什么?

          答:有DOM,SAX,STAX等

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

          STAX:Streaming API for XML (StAX)

          2、你在項(xiàng)目中用到了xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?

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

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

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

          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
          主站蜘蛛池模板: 瑞安市| 黑龙江省| 宁陵县| 宜丰县| 视频| 平和县| 百色市| 吉林省| 垣曲县| 英吉沙县| 夹江县| 鞍山市| 道孚县| 霍林郭勒市| 新安县| 宝鸡市| 龙游县| 边坝县| 寿光市| 会东县| 富川| 孝义市| 清丰县| 南郑县| 双鸭山市| 营山县| 彭州市| 英吉沙县| 平罗县| 新平| 吴桥县| 泗洪县| 柘荣县| 于都县| 潜山县| 阿拉善左旗| 额济纳旗| 东海县| 承德县| 旅游| 江达县|