相关文章链接(如有不足之处请留言补充):
面试宝典目录-文章链接
1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.
答:程序如下:
- 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>