`

JAVA面试题集——JDBC、XML篇

    博客分类:
  • java
阅读更多

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()); 
} 
} 
} 

 

 

4、编程用JAVA解析XML的方式.
答:用SAX方式解析XML,XML文件如下:
<?xml version="1.0" encoding="gb2312"?>
<person>
<name>王小明</name>
<college>信息学院</college>
<telephone>6258113</telephone>
<notes>男,1955年生,博士,95年调入海南大学</notes>
</person>
事件回调类SAXHandler.java

import java.io.*; 
import java.util.Hashtable; 
import org.xml.sax.*; 
public class SAXHandler extends HandlerBase 
{ 
private Hashtable table = new Hashtable(); 
private String currentElement = null; 
private String currentValue = null; 
public void setTable(Hashtable table) 
{ 
this.table = table; 
} 
public Hashtable getTable() 
{ 
return table; 
} 
public void startElement(String tag, AttributeList attrs) 
throws SAXException 
{ 
currentElement = tag; 
} 
public void characters(char[] ch, int start, int length) 
throws SAXException 
{ 
currentValue = new String(ch, start, length); 
} 
public void endElement(String name) throws SAXException 
{ 
if (currentElement.equals(name)) 
table.put(currentElement, currentValue); 
} 
} 

 

 

JSP内容显示源码,SaxXml.jsp:

<HTML> 
<HEAD> 
<TITLE>剖析XML文件people.xml</TITLE> 
</HEAD> 
<BODY> 
<%@ page errorPage="ErrPage.jsp" 
contentType="text/html;charset=GB2312" %> 
<%@ page import="java.io.*" %> 
<%@ page import="java.util.Hashtable" %> 
<%@ page import="org.w3c.dom.*" %> 
<%@ page import="org.xml.sax.*" %> 
<%@ page import="javax.xml.parsers.SAXParserFactory" %> 
<%@ page import="javax.xml.parsers.SAXParser" %> 
<%@ page import="SAXHandler" %> 
<% 
File file = new File("c:\people.xml"); 
FileReader reader = new FileReader(file); 
Parser parser; 
SAXParserFactory spf = SAXParserFactory.newInstance(); 
SAXParser sp = spf.newSAXParser(); 
SAXHandler handler = new SAXHandler(); 
sp.parse(new InputSource(reader), handler); 
Hashtable hashTable = handler.getTable(); 
out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>"); 
out.println("<TR><TD>姓名</TD>" + "<TD>" + 
(String)hashTable.get(new String("name")) + "</TD></TR>"); 
out.println("<TR><TD>学院</TD>" + "<TD>" + 
(String)hashTable.get(new String("college"))+"</TD></TR>"); 
out.println("<TR><TD>电话</TD>" + "<TD>" + 
(String)hashTable.get(new String("telephone")) + "</TD></TR>"); 
out.println("<TR><TD>备注</TD>" + "<TD>" + 
(String)hashTable.get(new String("notes")) + "</TD></TR>"); 
out.println("</TABLE>"); 
%> 
</BODY> 
</HTML> 

 

 

分享到:
评论

相关推荐

    Java面试题——重整理版

    Java面试题涵盖了许多Java语言的核心概念,包括J2SE(Java 2 Standard Edition)的基础知识,JSP(Java Server Pages)、Servlet、JDBC(Java Database Connectivity)、JDO(Java Data Objects)、XML、EJB...

    JAVA 面试题汇总

    【JAVA 面试题汇总】是一份集合了各种JAVA面试常见问题的资料,涵盖了核心JAVA、面向对象设计与UML、XML、SQL、JDBC、Hibernate、Web技术、EJB、Spring、数据结构与算法、计算机基础知识以及C++等多个方面。...

    1000道 互联网大厂Java工程师面试题.pdf

    Java互联网大厂面试题的知识点涵盖了当前互联网企业技术岗位中常见的技术栈,这些知识点主要围绕以下几个技术领域: MyBatis面试题涉及的知识点包括: 1. MyBatis是什么:MyBatis是一个优秀的持久层框架,它对JDBC...

    【电子版】校招面试题库(附答案与解析)java篇-破解密码.pdf

    《Java面试题库详解——破解密码》 Java作为全球最广泛应用的编程语言之一,其面试题目涵盖广泛,从基础语法到高级特性的理解和应用,都是面试官关注的重点。本资料详细整理了JavaSE、JavaEE、JavaWeb、JDBC、XML...

    JAVA毕业生就业面试题

    ### JAVA毕业生就业面试题...通过以上对给定文件的部分内容的详细解释,我们可以看到这份面试题集涵盖了Java开发所需掌握的各个方面,对于毕业生来说是非常宝贵的资源。希望这些知识点能帮助你在就业面试中取得好成绩!

    java ee 面试题总结

    ### Java EE面试题总结 #### 一、Hibernate工作原理及为何使用 - **工作原理**: 1. **读取并解析配置文件**:在应用程序启动时,Hibernate会读取`hibernate.cfg.xml`配置文件,该文件定义了连接数据库的信息(如...

    J2EE面试题(包含了大部分的框架面试题如:hibernate Spring Strust 等)

    本资源主要关注的是J2EE相关的面试题目,特别是与三大主流框架——Hibernate、Spring和Struts紧密相关的部分。这些框架在现代企业级应用开发中占据了核心地位,理解并掌握它们是成为合格J2EE开发者的关键。 ...

    java高级面试框架整理

    ### Java高级面试框架知识点整理 #### Struts框架详解 **1. Struts框架的基本结构** - **MVC模式实现:** Struts是一个基于MVC(Model-View-Controller)模式的Web应用框架,其中Controller部分主要由一个Servlet...

    J2EE面试题收集(三大框架)

    **J2EE面试题收集(三大框架)** 在Java企业级开发中,三大框架——Struts、Hibernate和Spring——占据着核心地位。这些框架分别解决了Web应用中的展示层、持久层和业务逻辑层的问题,形成了高效且易于维护的开发模式...

    Java千题库

    以上这些知识点都可能出现在"JAVA面试题库——题目.doc"和"JAVA面试题库——答案.doc"中,通过解答这些问题,不仅可以检验个人的Java知识水平,还能为面试做好充分准备。同时,解决实际问题的经验和对编程最佳实践的...

    J2EE基础试题——面试经常考的内容

    - **JDBC**:Java Database Connectivity,是Java连接数据库的标准接口,支持多种数据库,提供平台无关性,通过四种类型的驱动程序(JDBC-ODBC Bridge, JDBC-Native Driver Bridge, JDBC-Network Bridge, Pure Java...

    Java 经 典 面 试 题 大 全

    例如,面试题中提到的面向对象的四大特征——抽象、继承、封装和多态性,是理解Java编程基础的关键。对于作用域的理解,如public、private、protected以及默认作用域,是编写可维护和安全代码的基础。此外,面试题还...

    面试知识点总结--Java工程师面试题之三大框架.pdf

    Java工程师在面试中,经常会遇到关于三大框架——Struts、Spring和Hibernate的考察。这三大框架是Java后端开发中的核心组成部分,对于提升项目效率和代码质量有着显著作用。 首先,我们来看Hibernate,这是一个强大...

    Java工程师面试题之三大框架[汇编].pdf

    Java工程师在面试中经常会被问到关于三大框架——Struts、Spring和Hibernate的问题。这三大框架是Java Web开发中的核心组件,帮助开发者构建高效、可维护的系统。 首先,我们来看一下Hibernate。Hibernate是一个...

    Java工程师面试题(三大框架).pdf

    Java工程师在面试中经常会被问到关于三大框架——Struts、Spring和Hibernate的相关问题。这三大框架是Java Web开发中的核心组件,对于构建高效、可维护的系统至关重要。 1. **Hibernate**: - **工作原理**:...

    Spring的经典面试题

    - **基于Java的配置**:使用Java类来代替XML文件,通过注解或配置类来定义Bean。 - **注解配置**:在类或方法上使用注解(如`@Component`, `@Service`, `@Repository`)来声明Bean。 ### Spring Bean生命周期与作用...

    hive面试题

    ### Hive基础知识及面试要点 #### 一、Hive概述与架构 **1.1 Hive是什么?** Hive是一个构建在Hadoop之上的数据仓库架构,它提供了一系列工具用于数据提取、转换、加载(ETL)。Hive使得用户能够对存储在Hadoop中...

    it行业ssh面试题

    SSH 框架是 IT 行业中广泛使用的三大组件——Struts、Spring 和 Hibernate 的组合,常用于构建企业级的 Java Web 应用。这些面试题主要涉及到 Struts 的核心概念、MVC 设计模式的理解、配置细节、错误处理机制以及...

    spring经典面试题

    标题 "spring经典面试题" 暗示了我们即将探讨的是关于Spring框架的一些常见面试问题。Spring是Java企业级应用开发中的核心框架,它提供了一种全面的编程和配置模型,用于简化Java应用的开发。这里我们将深入研究...

    不要再重复造轮子了,Hutool这款开源工具类库贼好使(csdn)————程序.pdf

    Hutool是一款强大的Java工具类库,其设计目标是简化常见的开发任务,避免开发者重复编写通用的工具类。Hutool由" Hu"+"tool"组成,"Hu"来源于作者对前公司的致敬,"tool"代表工具,同时也巧妙地取了"糊涂"的谐音,...

Global site tag (gtag.js) - Google Analytics