Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136999
  • 博文数量: 31
  • 博客积分: 1952
  • 博客等级: 上尉
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-24 10:56
文章分类

全部博文(31)

文章存档

2011年(2)

2010年(29)

最近访客

分类: Java

2010-10-08 21:20:34

这是一个servlet文件->Wel.java.

==============建表sql语句=================
create table t_reg (userName varchar(18) primary key,pass
varchar(16),pass2 varchar(16),email varchar(40));

以下是java源码:

package cn.edu.ytu.db;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

/**
 * Servlet implementation class Wel
 */
public class Wel extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doRead(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    public void doRead(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection ct = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 解决中文乱码
            response.setContentType("text/html;charset=GB2312");
            PrintWriter pw = response.getWriter();
            // 欢迎界面
            pw.println("");
            pw.println("");
            pw.println("

数据库中相关记录

");

            // ================分页功能==================
            int rowCount = 0; // 共有几条记录
            int pageSize = 3;// 一页显示几条记录
            int pageCount = 0;// 共有几页
            int pageNow = 1;// 希望显示第几页
            // ==============建表sql
            // create table t_reg (Name varchar(18) primary key,pass
            // varchar(16),pass2 varchar(16),email varchar(40));

            // 动态接收pageNow,判断用户要查看哪一页
            String sPageNow = request.getParameter("pageNow");

            if (sPageNow != null)
                pageNow = Integer.parseInt(sPageNow);
            Context initContext = new InitialContext();
            Context envContext = (Context) initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource) envContext.lookup("jdbc/myoracle");
            ct = ds.getConnection();

            ps = ct.prepareStatement("select count(username) from t_reg");
            rs = ps.executeQuery();

            if (rs.next()) {
                rowCount = rs.getInt(1); // 得到rowCount
            }

            // 计算pageCount
            if (rowCount % pageSize == 0) {
                pageCount = rowCount / pageSize;
            } else {
                pageCount = rowCount / pageSize + 1;
            }
            String sql = "select * from t_reg";
            ps = ct.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            rs = ps.executeQuery();
            // 开始显示当前页的信息
            // rs.first();
            rs.absolute(1);
            rs.relative(pageNow * pageSize - pageSize);
            int temp = 1;

            pw.println("");
            pw.println("");
            while (temp <= pageSize && !rs.isAfterLast()){
                pw.println("");
                pw.println("");
                pw.println("");
                pw.println("");
                pw.println("");
                temp++; rs.next();
            }
            pw.println("
用户名密码邮件地址
" + rs.getString(1) + "" + rs.getString(2) + "" + rs.getString(4) + "
");

            // 显示分页的页码,如果用户点击分页码,就把该值传给wel,显示相应内容
            for (int i = 1; i <= pageCount; i++) {
                pw.println(" " + i + "");
            }
            pw.println("
");
            pw.println("");
            pw.flush();
            pw.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                ps.close();
                ct.close();
            } catch (SQLException e) {
                System.out.println("数据库使用中,不能关闭");
            }

        }

    }
}

阅读(2462) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-21 21:16:08

你好,我做servlet连接oracle数据库时遇到点问题,这些代码很有用,可是还是有点不明白,可以加我Q,给我指点一下吗?Q137501157