jsp直接访问数据库的代码

来源:互联网 发布:淘宝怎么报名活动 编辑:程序博客网 时间:2024/06/05 08:53

sql.jsp:

 

 

<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.sql.*,java.lang.String,java.util.*" %>
<HTML>
<head>
<title>
分页显示</title>
</head>

<BODY>

<%!String xh; %>
<%!int i;%>
<%!int pageSize=6;%><!--每页显示的记录条数为3 -->
<%!int rowCount=0;%>
<%!int pageCurrent;%><!--当前页数为“pageCurrent”-->
<%!int pageCount;%><!--总页数为pageCount-->
<%!Connection con=null;%>
<%!Statement sql=null;%>
<%!ResultSet rs=null;%>

 


<%
/**下面这个数据库连接,的主要目的是求出总的记录数rowCount*/
try
{

Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","WJZwjz1029");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");

 
    out.print(rowCount);
    rowCount=0;//注意这里的清0一定都不能少,否则你一点超链接,所有的记录数又重加一次
    while(rs.next())
    {
      rowCount++;
    }
    rs.close();
    sql.close();
    con.close();

}catch(Exception e)
{
out.print(e);
}

%>

<%


out.print("<Table Border>");
out.print("<TR bgcolor='#999999'>");//table属性
out.print("<TH width=100>"+"ssssss");//标题,可以更改
out.print("<TH width=50>"+"Ename");
out.print("</TR>");

%>

<%
try{Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","WJZwjz1029");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");
String strPage=request.getParameter("page");//"page为连接时传过来参数"
    /**
    第一次运行该页面时page必为null,因为参数未传过来,那么就将pageCurrent的值设为1
    也就表示第一页
    */
    if(strPage==null)
    {
      pageCurrent=1;
      }
      else{
       pageCurrent=Integer.parseInt(strPage);
       if(pageCurrent<1)
       pageCurrent=1;
      }
    /**
     下面两句的目的是将游标定位到要显示页的前一页的最后一条记录
    */
    for(i=1;i<=(pageCurrent-1)*pageSize;i++)
    rs.next();

 

 /**
        下面的一个for循环的作用是将要显示页的记录一条条的取出来放到table中
        */
    for(i=1;i<=pageSize;i++)
    {
  
  
 if(i%2==0)//颜色改变
  out.print("<TR bgcolor='#00FFFF'>");
  else
   out.print("<TR bgcolor='#FFFFFF'>");
  
  
  
     if(rs.next())
     {
 

int n=rs.getInt(1);//int 类型
out.print("<TD >"+n+"</TD>");

String e=rs.getString(2);//string类型
out.print("<TD >"+e+"</TD>");

 

out.print("</TR>") ;//行结束

        }

    }
 out.print("</Table>");
 
 
    out.print("conn自动提交:"+con.getAutoCommit()+"<br>");//此语句测试conn自动提交没有,如果没有,就要在executeUpdate()后加上conn.commit();
  
   //关闭数据库
    rs.close();
    sql.close();
    con.close();
 
    pageCount=(int)(rowCount/pageSize);
    if(pageSize*pageCount<rowCount)
    {
    pageCount++;
    }
    out.print("共"+pageCount+"页");
    if(pageCount>1)
    {
    for(i=1;i<=pageCount;i++)
     out.print("<a href='sql.jsp?page="+i+"'>"+i+" </a>"); //这里易出错
     /**
     out.print("<a href='sql.jsp?page='"+i+"'>"+i+"</a>");这里错误就在page等号不要有“'”
     在双引号里面的双引号就变为了单引号了。
     */
    }
    out.print("    第"+pageCurrent+"页");
}
catch(Exception e)
{
out.print(e);
}
%>

 


</body>
</html>