基于MVC的信息管理系统

上行若水  大行至简

本项目适合你的课程设计,是我当时写的一个适和初级java实践者的练手项目,你跑起来后可修改或加入自己的逻辑,希望你学习顺利,心想事成!

目录

项目结构&配置

结构

web.xml

jdbc方法封装

实体类定义

用户信息类

分页类

页面&控制器

登录

注册

信息列表(含分页)

信息详情

信息修改&删除

处理成功页

页面所用CSS

业务层

数据访问层

数据库表


本文涉及:mvc、jsp、Servlet、jdbc综合应用

项目结构&配置

结构

基于MVC的信息管理系统_第1张图片

web.xml



  BasicMVCDemo_wanglan
  
    login.jsp
  
  
    LoginServlet
    cn.wl.servlet.LoginServlet
  
  
    LoginServlet
    /LoginServlet
  
  
    
    RegisterServlet
    RegisterServlet
    cn.wl.servlet.RegisterServlet
  
  
    RegisterServlet
    /RegisterServlet
  
  
    
    FetchUserinfoServlet
    FetchUserinfoServlet
    cn.wl.servlet.FetchUserinfoServlet
  
  
    FetchUserinfoServlet
    /FetchUserinfoServlet
  
  
    
    FetchUserinfoByIdServlet
    FetchUserinfoByIdServlet
    cn.wl.servlet.FetchUserinfoByIdServlet
  
  
    FetchUserinfoByIdServlet
    /FetchUserinfoByIdServlet
  
  
    
    UserinfoUpdateServlet
    UserinfoUpdateServlet
    cn.wl.servlet.UserinfoUpdateServlet
  
  
    UserinfoUpdateServlet
    /UserinfoUpdateServlet
  
  
    
    DeleteUserinfoByIdServlet
    DeleteUserinfoByIdServlet
    cn.wl.servlet.DeleteUserinfoByIdServlet
  
  
    DeleteUserinfoByIdServlet
    /DeleteUserinfoByIdServlet
  

jdbc方法封装

package cn.wl.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

//获取数据库的链接和关闭资源
public class DBUtil {
	public Connection getConnection() throws Exception {
		// 加载驱动
		Connection connection = null;
		String diverClass = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://test:3307/testproject";
		String name = "用户名";
		String passwrd = "密码";
		Class.forName(diverClass);

		// 获取链接
		connection = DriverManager.getConnection(url, name, passwrd);
		return connection;
	}

	// 封装一个关闭资源的方法
	public void closeDBResource(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet)
			throws Exception {
		// 关闭资源从小到大的关
		if (resultSet != null) {
			try {
				resultSet.close();
			} finally {
				// 如果关不掉
				resultSet = null;
			}
		}
		if (preparedStatement != null) {
			try {
				preparedStatement.close();
			} finally {
				// 如果关不掉
				preparedStatement = null;
			}
		}
		if (connection != null) {
			try {
				connection.close();
			} finally {
				// 如果关不掉
				connection = null;
			}
		}

	}

}

实体类定义

用户信息类

UserInfoBean.java

package cn.wl.bean;

public class UserinfoBean {
private int id;
private String username;
private String userpwd;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getUserpwd() {
	return userpwd;
}
public void setUserpwd(String userpwd) {
	this.userpwd = userpwd;
}
}

分页类

package cn.wl.bean;

public class PageBean {
	public static int ROWS_PAGE_USERINFO = 3;     //列表一页有几行
	private int pageno; // 页数

	public int getPageno() {
		return pageno;
	}

	public void setPageno(int pageno) {
		this.pageno = pageno;
	}

	public int getMaxpage() {
		return maxpage;
	}

	public void setMaxpage(int maxpage) {
		this.maxpage = maxpage;
	}

	private int maxpage;       //尾页
}

页面&控制器

登录

页面login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录界面


请登录
<%=request.getAttribute("msg")!=null?request.getAttribute("msg"):""%>
用户名:"/><%=request.getAttribute("msg_username")!=null?request.getAttribute("msg_username"):""%>
密    码:<%=request.getAttribute("msg_userpwd")!=null?request.getAttribute("msg_userpwd"):""%>
注册一个

登录控制器LoginServlet.java

package cn.wl.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;

public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
  	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");   //约定post方式提交,提交过来后调整为UTF-8避免乱码
		//得到的跟form表单里的name属性必须相同
		String username=request.getParameter("username");
		String userpwd=request.getParameter("userpwd");
        //内存中为null,或输入为空字符串
		if(username==null||username.equals("")){
			request.setAttribute("msg_username", "用户名不能为空");
			request.getRequestDispatcher("login.jsp").forward(request, response);
		}else if(userpwd==null||userpwd.equals("")){
			request.setAttribute("temp_username", username);       //输入密码后如果错误回显显示出刚输入的用户名避免重新输入
			request.setAttribute("msg_userpwd", "密码不能为空");
			request.getRequestDispatcher("login.jsp").forward(request, response);
		}else{
			//引入业务层,硬性编码
			UserinfoBiz userinfoBiz = new UserinfoBizImpl();
			int result = userinfoBiz.loginByUsernameAndUserpwd(username,userpwd);
			if(result==1){
				//相应的转发操作,为1成功,0则失败
				request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
			}else{
				request.setAttribute("msg", "用户名或密码不正确");
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}
		}
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

注册

register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




注册界面


请注册
<%=request.getAttribute("msg")!=null?request.getAttribute("msg"):""%>
用户名:"/><%=request.getAttribute("msg_username")!=null?request.getAttribute("msg_username"):""%>
密    码:<%=request.getAttribute("msg_userpwd")!=null?request.getAttribute("msg_userpwd"):""%>

注册控制器

RegisterServlet.java

package cn.wl.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.wl.bean.UserinfoBean;
import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;

public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		String username = request.getParameter("username");
		String userpwd = request.getParameter("userpwd");
		if (username == null || username.equals("")) {
			request.setAttribute("msg_username", "注册的用户名不能为空");
			request.getRequestDispatcher("register.jsp").forward(request, response);
		} else if (userpwd == null || userpwd.equals("")) {
			request.setAttribute("temp_username", username); // 输入密码后如果错误回显显示出刚输入的用户名避免重新输入
			request.setAttribute("msg_userpwd", "注册的密码不能为空");
			request.getRequestDispatcher("register.jsp").forward(request, response);
		} else {
			// 引入业务层,硬性编码
			UserinfoBiz userinfoBiz = new UserinfoBizImpl();

			int nameCount = userinfoBiz.countUsername(username);
			if (nameCount == 0) {
				UserinfoBean userinfoBean = new UserinfoBean();
				userinfoBean.setUsername(username);
				userinfoBean.setUserpwd(userpwd);
				int result = userinfoBiz.registerUserinfo(userinfoBean);

				if (result == 1) {
					request.setAttribute("msg", "注册成功,请登录");
					request.setAttribute("temp_username", username);
					// 相应的转发操作,为1成功,0则失败
					request.getRequestDispatcher("login.jsp").forward(request, response);
				} else {
					request.setAttribute("msg", "注册失败,请重新注册");
					request.getRequestDispatcher("register.jsp").forward(request, response);
				}
			} else {
				request.setAttribute("msg", "该用户名已存在,请重新注册");
				request.getRequestDispatcher("register.jsp").forward(request, response);
			}
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

信息列表(含分页)

页面userinfoList.jsp

<%@page import="cn.wl.bean.UserinfoBean"%>
<%@page import="cn.wl.bean.PageBean"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>







列表界面


	

用户信息列表

<% List userinfoBeanList = (List) request.getAttribute("userinfoBeanList"); %> <%=request.getAttribute("msg") != null ? request.getAttribute("msg") : ""%>
<% if (userinfoBeanList != null && userinfoBeanList.size() > 0) { for (UserinfoBean userinfoBean : userinfoBeanList) { %> <% } } else { %> <% } %> <% PageBean pageBean = (PageBean) session.getAttribute("userinfolist_pageBean"); /* session存放翻到第几页此时的pageBean值(包括各项属性,第几页,最大页等),翻到了第二页就是第二页的属性值 */ if (pageBean != null) { %> <% } %>
用户ID 用户名 密码
操作
<%=userinfoBean.getId()%> <%=userinfoBean.getUsername()%> <%=userinfoBean.getUserpwd()%> 查看 修改 删除
无用户信息
首页 上一页 下一页 尾页

后端控制器

package cn.wl.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.wl.bean.PageBean;
import cn.wl.bean.UserinfoBean;
import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;

public class FetchUserinfoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 创建一个session
		HttpSession session = request.getSession();
		int pageno = 1;
		/*
		 * 第100页出现问题后不可能从第一页又翻到第100页,定义临时的temp_pageBean
		 * pagenoString存放操作之后的页数,先拿request中的,下面是正常翻页,
		 */
		String pagenoString = request.getParameter("pageno");
		try {
			pageno = Integer.parseInt(pagenoString);// 强转整型
		} catch (Exception e) {
		}
		// 获取jsp请求的当前session值
		PageBean temp_pageBean = (PageBean) session.getAttribute("userinfolist_pageBean");
		/*
		 * 没有进行翻页操作,session里有值,返回当前页temp_pageBean的值,
		 * 如果先判断session里有没有值,因为session已经保存当前页的值,必定temp_pageBean!=null,
		 * 获取必定还是当前页,导致翻页无法实现 下面是非正常翻页
		 */
		if (pagenoString == null && temp_pageBean != null) {
			pageno = temp_pageBean.getPageno();
		}

		if (pageno <= 1) {
			pageno = 1;
		}
		UserinfoBiz userinfoBiz = new UserinfoBizImpl();
		int totalUserinfoRows = userinfoBiz.fetchUserinfoListCount();
		int maxpage = (totalUserinfoRows % PageBean.ROWS_PAGE_USERINFO == 0)
				? (totalUserinfoRows / PageBean.ROWS_PAGE_USERINFO)
				: totalUserinfoRows / PageBean.ROWS_PAGE_USERINFO + 1;
		if (pageno >= maxpage) {
			pageno = maxpage;
		}

		List userinfoBeanList = userinfoBiz.fetchUserinfoList(pageno);
		// System.out.println(pageno);
		PageBean pageBean = new PageBean();
		pageBean.setPageno(pageno);
		pageBean.setMaxpage(maxpage);
		request.setAttribute("userinfoBeanList", userinfoBeanList);
		/*
		 * 上面是进行分页之后pageBean,下面将pageBean放到session中保存,在jsp中用session获取请求,
		 * 然后进行实际的分页操作 同样,用户点击下一页或其他分页操作时候,pageno传到servlet中进行判断,如此循环
		 */
		session.setAttribute("userinfolist_pageBean", pageBean);
		request.getRequestDispatcher("userinfoList.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

信息详情

页面userinfo_view.jsp

<%@page import="cn.wl.bean.UserinfoBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>




Insert title here


	<%
		UserinfoBean userinfoBean = (UserinfoBean) request.getAttribute("userinfoBean");
		if (userinfoBean != null) {
	%>
	用户ID:<%=userinfoBean.getId()%>
用户名:<%=userinfoBean.getUsername()%>
密码:<%=userinfoBean.getUserpwd()%>
<% } else { request.setAttribute("msg", "用户信息丢失,请重新操作"); request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response); } %> 返回

后端控制器

package cn.wl.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.wl.bean.UserinfoBean;
import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;

public class FetchUserinfoByIdServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String idString = request.getParameter("id");
		try {
			int id = Integer.parseInt(idString);
			UserinfoBiz userinfoBiz = new UserinfoBizImpl();
			// 调用UserinfoBiz相应的资源,封装一个相应的方法fetchUserinfoById(id)
			UserinfoBean userinfoBean = userinfoBiz.fetchUserinfoById(id);
			// 可能有多终端,资源可能刚被删除,因此先需要判断
			if (userinfoBean != null) {
				String type = request.getParameter("type");
				request.setAttribute("userinfoBean", userinfoBean);
				/*
				 * 进行相应的分流,第一种:确定type值,if(type!=null&&type.equals("view"))
				 * 第二种:用明确的值比较不明确的值,避免空指针异常
				 */
				if ("view".equals(type)) {
					request.getRequestDispatcher("userinfo_view.jsp").forward(request, response);
				} else if("update".equals(type)){
					request.getRequestDispatcher("userinfo_update.jsp").forward(request, response);
				}else{
					request.setAttribute("msg", "用户操作不明确,请重新操作");
					request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
				}
			} else {
				// 如果为null,则到相应的servlet中去
				request.setAttribute("msg", "用户信息不存在,请重新操作");
				request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
			}

		} catch (Exception e) {
			request.setAttribute("msg", "用户ID转换异常,请重新操作");
			request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

信息修改&删除

页面userinfo_update.jsp

<%@page import="cn.wl.bean.UserinfoBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	<%
		UserinfoBean userinfoBean = (UserinfoBean) request.getAttribute("userinfoBean");
		if (userinfoBean != null) {
	%>
请修改
<%=request.getAttribute("msg")!=null?request.getAttribute("msg"):""%>
用户名:<%=request.getAttribute("temp_username")!=null?request.getAttribute("temp_username"):""%>
密    码:<%=request.getAttribute("msg_userpwd")!=null?request.getAttribute("msg_userpwd"):""%>
<% }else{} %> 返回

后端控制器

package cn.wl.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.wl.bean.UserinfoBean;
import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;


public class UserinfoUpdateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("UTF-8");
		String idString = request.getParameter("id");
		try {
			int id=Integer.parseInt(idString);
			UserinfoBiz userinfoBiz=new UserinfoBizImpl();
			UserinfoBean current_userinfoBean=userinfoBiz.fetchUserinfoById(id);
			String username=request.getParameter("username");
			String userpwd=request.getParameter("userpwd");
			if ("".equals(username)) {
				request.setAttribute("msg_username", "用户名不能为空");
				request.setAttribute("userinfoBean", current_userinfoBean);
				request.getRequestDispatcher("userinfo_update.jsp").forward(request, response);
			} else if("".equals(userpwd)){
				request.setAttribute("msg_userpwd", "密码不能为空");
				current_userinfoBean.setUsername(username);//刷新的时候刚输入的名字还在,避免重复输入
				/*
				 * userinfoBean"是变量名称,用于jsp界面中获取此名,current_userinfoBean是变量值,
				 * 比如只改名字为张三setUsername(username)中的username就是张三,再次刷新就回显出来
				 */
				request.setAttribute("userinfoBean", current_userinfoBean);
				request.getRequestDispatcher("userinfo_update.jsp").forward(request, response);
			}else{
				UserinfoBean userinfoBean2 = new UserinfoBean();
				userinfoBean2.setId(id);
				userinfoBean2.setUsername(username);
				userinfoBean2.setUserpwd(userpwd);
				int result=userinfoBiz.updateUserinfo(userinfoBean2);
				if(result==1){
					request.setAttribute("msg", "修改成功!");
					request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
				}else{
					request.setAttribute("msg", "修改失败!");
					request.setAttribute("userinfoBean", current_userinfoBean);
					request.getRequestDispatcher("userinfo_update.jsp").forward(request, response);
				}
			}
			
		} catch (Exception e) {
			request.setAttribute("msg", "用户ID丢失,请重新操作");
			request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

删除控制器

package cn.wl.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.wl.biz.UserinfoBiz;
import cn.wl.biz.UserinfoBizImpl;


public class DeleteUserinfoByIdServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String idString=request.getParameter("id");
		
		try {
			int id=Integer.parseInt(idString);
			UserinfoBiz userinfoBiz=new UserinfoBizImpl();
			int result=userinfoBiz.deleteUserinfoById(id);
			if(result==1){
				request.setAttribute("msg", "删除成功");
			}else{
				request.setAttribute("msg", "删除失败");
			}
			request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
		} catch (Exception e) {
			request.setAttribute("msg", "用户信息丢失");
			request.getRequestDispatcher("FetchUserinfoServlet").forward(request, response);
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

处理成功页

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


登录成功

页面所用CSS

@CHARSET "UTF-8";

业务层

接口UserinfoBiz.java

package cn.wl.biz;


import java.util.List;

import cn.wl.bean.UserinfoBean;

public interface UserinfoBiz {

	public int loginByUsernameAndUserpwd(String username, String userpwd);


	public int registerUserinfo(UserinfoBean userinfoBean);


	public List fetchUserinfoList();


	public List fetchUserinfoList(int pageno);


	public UserinfoBean fetchUserinfoById(int id);


	public int updateUserinfo(UserinfoBean userinfoBean2);


	public int deleteUserinfoById(int id);


	public int countUsername(String username);


	public int fetchUserinfoListCount();

}

实现类UserinfoBizImpl.java

package cn.wl.biz;
import java.util.List;

import cn.wl.bean.UserinfoBean;
import cn.wl.dao.UserinfoDao;
import cn.wl.dao.UserinfoDaoImpl;

public class UserinfoBizImpl implements UserinfoBiz {
	UserinfoDao userinfoDao = new UserinfoDaoImpl();
	public int loginByUsernameAndUserpwd(String username, String userpwd) {
		int result = 0;
		// 业务层来捕获异常
		try {
			result = userinfoDao.loginByUsernameAndUserpwd(username, userpwd); 

		} catch (Exception e) {
			e.printStackTrace();

		}
		return result;  //1或0
	}

	public int registerUserinfo(UserinfoBean userinfoBean) {
		int result = 0;
		// 业务层来捕获异常
		try {
			result = userinfoDao.registerUserinfo(userinfoBean);      //反向生成UserinfoDao中的此方法

		} catch (Exception e) {
			e.printStackTrace();

	}
		return result;
	}

	public List fetchUserinfoList() {//下面的方法为重载,同类中方法名相同,参数不同
		List userinfoBeanList=null;
		try {
			userinfoBeanList=userinfoDao.fetchUserinfoList();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return userinfoBeanList;
	}

	public List fetchUserinfoList(int pageno) { //重载
		List userinfoBeanList=null;
		try {
			userinfoBeanList=userinfoDao.fetchUserinfoList(pageno);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return userinfoBeanList;
	}
//返回UserinfoBean先要进行声明,查询信息
	public UserinfoBean fetchUserinfoById(int id) {
		UserinfoBean userinfoBean=null;
		try {
			userinfoBean=userinfoDao.fetchUserinfoById(id);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return userinfoBean;
	}
//用于修改信息
	public int updateUserinfo(UserinfoBean userinfoBean2) {
		int result=0;
		try {
			result=userinfoDao.updateUserinfo(userinfoBean2);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}

	public int deleteUserinfoById(int id) {
		int result=0;
		try {
			result=userinfoDao.deleteUserinfoById(id);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}

	public int countUsername(String username) {
		int result=0;
		try {
			result=userinfoDao.countUsername(username);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}

	public int fetchUserinfoListCount() {
		int result=0;
		try {
			result=userinfoDao.fetchUserinfoListCount();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}

}

数据访问层

UserinfoDao.java

package cn.wl.dao;

import java.util.List;
import cn.wl.bean.UserinfoBean;

public interface UserinfoDao {

	public int loginByUsernameAndUserpwd(String username, String userpwd)throws Exception;


	public int registerUserinfo(UserinfoBean userinfoBean) throws Exception;


	public List fetchUserinfoList() throws Exception;


	public List fetchUserinfoList(int pageno) throws Exception;


	public UserinfoBean fetchUserinfoById(int id) throws Exception;


	public int updateUserinfo(UserinfoBean userinfoBean2) throws Exception;


	public int deleteUserinfoById(int id) throws Exception;


	public int countUsername(String username) throws Exception;


	public int fetchUserinfoListCount() throws Exception;

}

实现类UserinfoDaoImpl.java

package cn.wl.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import cn.wl.bean.PageBean;
import cn.wl.bean.UserinfoBean;
import cn.wl.util.DBUtil;

public class UserinfoDaoImpl implements UserinfoDao {
	DBUtil dbUtil = new DBUtil();
	Connection connection = null;
	PreparedStatement preparedStatement = null;
	ResultSet resultSet = null;

	// 异常抛给业务层来处理
	public int loginByUsernameAndUserpwd(String username, String userpwd) throws Exception {
		int result = 0;
		// 数据库的处理
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select count(*) from userinfo_wl where username=? and userpwd=? ";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setString(1, username);// 1代表第一个?
		preparedStatement.setString(2, userpwd);
		resultSet = preparedStatement.executeQuery();
		while (resultSet.next()) {
			result = resultSet.getInt(1);// 列名,第几列,将结果返回业务层

		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}

	// 插入
	public int registerUserinfo(UserinfoBean userinfoBean) throws Exception {
		int result = 0;
		// 数据库的处理
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "insert into userinfo_wl (username,userpwd) values(?,?) ";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setString(1, userinfoBean.getUsername());// 1代表第一个?
		preparedStatement.setString(2, userinfoBean.getUserpwd());
		result = preparedStatement.executeUpdate();
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}

	// 查询
	public List fetchUserinfoList() throws Exception {
		List userinfoBeanList = null;
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select * from userinfo_wl ";
		preparedStatement = connection.prepareStatement(sql);
		resultSet = preparedStatement.executeQuery();
		userinfoBeanList = new ArrayList(); // 开辟一个空间
		while (resultSet.next()) {
			UserinfoBean userinfoBean = new UserinfoBean();
			userinfoBean.setId(resultSet.getInt("id"));
			userinfoBean.setUsername(resultSet.getString("username"));
			userinfoBean.setUserpwd(resultSet.getString("userpwd"));
			userinfoBeanList.add(userinfoBean);
		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return userinfoBeanList;

	}

	// 分页
	public List fetchUserinfoList(int pageno) throws Exception {
		List userinfoBeanList = null;
		// System.out.println(pageno);
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select * from userinfo_wl limit ?,?";
		preparedStatement = connection.prepareStatement(sql);
		// limit的第一个参数,从第几条开始,比如第一页从0开始,第二页从3开始,前提是一页显示3条
		preparedStatement.setInt(1, (pageno - 1) * PageBean.ROWS_PAGE_USERINFO);
		/*
		 * limit的第二个参数,从该条开始向后按顺序推进多少条,与表的id无关,只按表的行(下一行)取
		 * 比如页面显示每一页3条,那么点击“下一页”向后移动3条 select * from table limit (page-1)*3,3)
		 * 当page为2时查询3-5以此类推
		 */
		preparedStatement.setInt(2, PageBean.ROWS_PAGE_USERINFO);
		resultSet = preparedStatement.executeQuery();
		userinfoBeanList = new ArrayList(); // 开辟一个空间
		while (resultSet.next()) {
			UserinfoBean userinfoBean = new UserinfoBean();
			userinfoBean.setId(resultSet.getInt("id"));
			userinfoBean.setUsername(resultSet.getString("username"));
			userinfoBean.setUserpwd(resultSet.getString("userpwd"));
			userinfoBeanList.add(userinfoBean);
		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return userinfoBeanList;
	}

	public UserinfoBean fetchUserinfoById(int id) throws Exception {
		UserinfoBean userinfoBean = null;
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select * from userinfo_wl where id=?";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setInt(1, id);
		resultSet = preparedStatement.executeQuery();
		while (resultSet.next()) {
			// 有值了new一个UserinfoBean(),并放相应的值
			userinfoBean = new UserinfoBean();
			userinfoBean.setId(resultSet.getInt("id"));
			userinfoBean.setUsername(resultSet.getString("username"));
			userinfoBean.setUserpwd(resultSet.getString("userpwd"));
		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return userinfoBean;
	}

	public int updateUserinfo(UserinfoBean userinfoBean2) throws Exception {
		int result = 0;
		connection = dbUtil.getConnection();
		String sql = " update  userinfo_wl set username=?,userpwd=? where id=? ";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setString(1, userinfoBean2.getUsername());
		preparedStatement.setString(2, userinfoBean2.getUserpwd());
		preparedStatement.setInt(3, userinfoBean2.getId());
		result = preparedStatement.executeUpdate();
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}

	public int deleteUserinfoById(int id) throws Exception {
		int result = 0;
		connection = dbUtil.getConnection();
		String sql = " delete from  userinfo_wl  where id=? ";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setInt(1, id);
		result = preparedStatement.executeUpdate();
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}

	public int countUsername(String username) throws Exception {
		int result = 0;
		// 数据库的处理
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select count(*) from userinfo_wl where username=? ";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.setString(1, username);// 1代表第一个?
		resultSet = preparedStatement.executeQuery();
		while (resultSet.next()) {
			result = resultSet.getInt(1);// 列名,第几列,将结果返回业务层

		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}

	public int fetchUserinfoListCount() throws Exception {
		int result = 0;
		connection = dbUtil.getConnection();// 达到代码的复用
		String sql = "select count(*) from userinfo_wl ";
		preparedStatement = connection.prepareStatement(sql);
		resultSet = preparedStatement.executeQuery();
		while (resultSet.next()) {
			result = resultSet.getInt(1);// 列名,第几列,将结果返回业务层
		}
		dbUtil.closeDBResource(connection, preparedStatement, resultSet);
		return result;
	}
}

数据库表

一个实体类对应一个表,用户信息类只有三个字段,非常简单,自己建下表就行了。

 

 

 

 

 

 

 

你可能感兴趣的:(#,java,xml/jsp/servlet,jsp,Servlet,jdbc,mvc)