您的位置:首页 > 其它

实现简单的信息查询系统(分页和Servlet的运用)

2017-05-02 20:10 423 查看
最近学习完JSP和servlet后,一般会使用来完成一些信息系统的显示,并且具有分页的功能,下面是一次考试中的题目:具体的内容有如图所示

点击编号后会进入编辑信息界面。

下面是代码的实现:

分页的实体类的属性有:

private int pageIndex;//当前页数
private int pageNumber;//总记录数
private int pageCount;//总页数
private int pageSize;//每页大小
private List<ClubVip> list;

工具类:

//加载驱动
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}

//创建连接池
public  static Connection getConnection(){
Connection con=null;
try {
Context ct =new InitialContext();
DataSource db =(DataSource) ct.lookup("java:comp/env/club");
con = db.getConnection();
} catch (Exception e) {
e.printStackTrace();
}

return con;

}
//关闭资源
public static void CloseAll(Connection con,Statement st,ResultSet rs){

try {
if(con!=null){
con.close();
}
if(st!=null){
st.close();

}if(rs!=null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}

}
//修改的方法
public static int executeUpdate(String sql,Object...objects){
Connection con=null;
PreparedStatement ps=null;
try {
con=Basedao.getConnection();
ps=con.prepareStatement(sql);
if(objects.length>0){
for(int i=0;i<objects.length;i++){
ps.setObject(i+1,objects[i]);
}
}
return ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
Basedao.CloseAll(con, ps, null);
}
return 0;

}

具体的数据访问层代码:

public class ClubvipdaoImpl implements Clubvipdao {

@Override
public List<ClubVip> find() {
Connection con = null;
Statement st = null;
ResultSet rs = null;
List<ClubVip> list = new ArrayList<ClubVip>();
String sql = "select * from clubvip";
ClubVip cv = new ClubVip();
con = Basedao.getConnection();
try {
st = con.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
cv.setId(rs.getInt(1));
cv.setName(rs.getString(2));
cv.setSex(rs.getString(3));
cv.setAge(rs.getInt(4));
cv.setAddress(rs.getString(5));
cv.setEmail(rs.getString(6));

list.add(cv);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Basedao.CloseAll(con, st, rs);

}

return list;
}

@Override
public int update(ClubVip cv) {
String sql = "update clubvip set name=?,sex=?,age=?,Address=?,email=? where id=?";

return Basedao.executeUpdate(sql, cv.getName(), cv.getSex(),
cv.getAge(), cv.getAddress(), cv.getEmail(), cv.getId());
}

@Override
public PageUtil getCount(int PageIndex,int PageSize) {
//获取共有多少条数据
String sql="select count(*) from clubvip";
//取分页的条数
String sql1="select *from clubvip limit ?,?";
PageUtil pu=new PageUtil();
Connection con=null;
PreparedStatement ps=null;
con=Basedao.getConnection();
List<ClubVip> list= new ArrayList<ClubVip>();
ResultSet rs=null;

try {
ps=con.prepareStatement(sql);
<
4000
/span>rs = ps.executeQuery();
if(rs.next()){
//记录总记录数
int pageNumber =rs.getInt(1);
pu.setPageNumber(pageNumber);
}
ps=con.prepareStatement(sql1);
ps.setInt(1,(PageIndex-1)*PageSize);
ps.setInt(2,PageSize);
rs=ps.executeQuery();
while(rs.next()){
ClubVip cv=new ClubVip();
cv.setId(rs.getInt(1));
cv.setName(rs.getString(2));
cv.setSex(rs.getString(3));
cv.setAge(rs.getInt(4));
cv.setAddress(rs.getString(5));
cv.setEmail(rs.getString(6));

list.add(cv);
}
pu.setList(list);
//当前页
pu.setPageIndex(PageIndex);
//页面大小
pu.setPageSize(PageSize);

int count =(int)Math.ceil(pu.getPageNumber()/(double)pu.getPageSize());
pu.setPageCount(count);
} catch (SQLException e) {
e.printStackTrace();
}finally{
Basedao.CloseAll(con, ps, rs);
}
return pu;
}

@Override
public ClubVip findByid(int id) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
String sql = "select * from clubvip where id=?";
ClubVip cv = new ClubVip();
con = Basedao.getConnection();
try {
st = con.prepareStatement(sql);
st.setInt(1,id);
rs = st.executeQuery();
if(rs.next()) {
cv.setId(rs.getInt(1));
cv.setName(rs.getString(2));
cv.setSex(rs.getString(3));
cv.setAge(rs.getInt(4));
cv.setAddress(rs.getString(5));
cv.setEmail(rs.getString(6));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Basedao.CloseAll(con, st, rs);

}

return cv;
}

@Override
public int delete(int id) {
String sql="delete from clubvip where id=?";
return Basedao.executeUpdate(sql,id);
}

}

JSP页面代码:

信息列表:

<body>

<form action="ClubSer" method="post">
<table>
<thead style="text-align: center;">俱乐部会员信息</thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄„</th>
<th>家庭住址€</th>
<th>Email</th>
<th>操作</th>
</tr>

<c:forEach items="${pu.list }"  var="club">
<tr>
<td><a href='ClubSer?tag=edit&id=${club.id }'>${club.id }</a></td>
<td>${club.name }</td>
<td>${club.sex }</td>
<td>${club.age }</td>
<td>${club.address }</td>
<td>${club.email }</td>

<td><a href='ClubSer?tag=del&id=${club.id }'
onclick='return confirm("你确定要删除 吗")'>删除</a></td>
</tr>
</c:forEach>
</table>
<p>总记录数:${pu.pageNumber}条,共${pu.pageCount}页,当前第${pu.pageIndex}页
<a href="ClubSer">首页</a> 
<c:choose>
<c:when test="${pu.pageIndex>1 }">
<a href='ClubSer?pageIndex=${pu.pageIndex-1 }'>上一页</a>
</c:when>
<c:otherwise>
<a href='ClubSer?pageIndex=1'>上一页</a>
</c:otherwise>
</c:choose>
<c:forEach begin="1" end="${pu.pageCount}" var="i">
<a href ="ClubSer?pageIndex=${i}">${i}</a>
</c:forEach>
<c:choose>
<c:when test="${pu.pageIndex<pu.pageCount }">
<a href='ClubSer?pageIndex=${pu.pageIndex+1 }'>下一页</a>
</c:when>
<c:otherwise>
<a href='ClubSer?pageIndex=${pu.pageCount}'>下一页</a>
</c:otherwise>
</c:choose>
<a href='ClubSer?pageIndex=${pu.pageCount}'>尾页</a>
<a href="index.jsp">【返回首页】</a></p>

</form>

</body>

编辑列表:

<form action="ClubSer?tag=edit" method="post">
<fieldset>
<legend>会员基本资料</legend>
<p>
编号:<input type="text" value="${cv.id}" name="id">
</p>
<p>
姓名:<input type="text" value="${cv.name}" name="name">
</p>
<p>
性别:
<c:choose>
<c:when test='${cv.sex.equals("男")}'>
<input type="radio" value="男" name="sex" checked="checked">男
<input type="radio" name="sex" value="女">女
</c:when>
<c:otherwise>
<input type="radio" name="sex" value="男">男
<input type="radio" value="女" name="sex" checked="checked">女
</c:otherwise>
</c:choose>
</p>
<p>
年龄:<input type="text" value="${cv.age}" name="age">
</p>
<p>
地址:<input type="text" value="${cv.address}" name="address">
</p>
<p>
邮箱:<input type="text" value="${cv.email}" name="email">
</p>
<input type="submit" value="编辑">
</fieldset>
</form>

</body>

Servlet代码:

/**

 * Servlet implementation class ClubSer

 */

@WebServlet("/ClubSer")

public class ClubSer extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String tag = request.getParameter("tag");
Clubvipbiz biz = new ClubvipbizImpl();
if (tag != null && tag.equals("edit")) {
int id = Integer.parseInt(request.getParameter("id"));
ClubVip cv = new ClubvipbizImpl().findByid(id);
request.setAttribute("cv", cv);
request.getRequestDispatcher("editInfo.jsp").forward(request,
response);
return;
}else if(tag!=null &&tag.equals("del")){
int id = Integer.parseInt(request.getParameter("id"));
biz.delete(id);
}

// 进行分页信息
int PageIndex = 1;
int PageSize = 4;
if (request.getParameter("pageIndex") != null) {
PageIndex = Integer.parseInt(request.getParameter("pageIndex"));
PageIndex = PageIndex <= 0 ? 1 : PageIndex;
}
PageUtil pu = biz.getCount(PageIndex, PageSize);
request.setAttribute("pu", pu);
// List<ClubVip> list = biz.find();
// request.setAttribute("list",list);

request.getRequestDispatcher("ClubvipInfo.jsp").forward(request,
response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String tag = request.getParameter("tag");
if (tag.equals("edit")) {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String sex = request.getParameter("sex");
int age = Integer.parseInt(request.getParameter("age"));
String address = request.getParameter("address");
String email = request.getParameter("email");

ClubVip cv = new ClubVip();
cv.setId(id);
cv.setName(name);
cv.setSex(sex);
cv.setAge(age);
cv.setAddress(address);
cv.setEmail(email);

new ClubvipbizImpl().update(cv);
response.sendRedirect("ClubSer");
}
}

}

WEB-INF中的web.xml的servlet配置文件:

  <servlet>

    <description></description>

    <display-name>ClubSer</display-name>

    <servlet-name>ClubSer</servlet-name>

    <servlet-class>com.etc.Ser.ClubSer</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>ClubSer</servlet-name>

    <url-pattern>/ClubSer</url-pattern>

  </servlet-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐