本项目适合你的课程设计,是我当时写的一个适和初级java实践者的练手项目,你跑起来后可修改或加入自己的逻辑,希望你学习顺利,心想事成!
目录
项目结构&配置
结构
web.xml
jdbc方法封装
实体类定义
用户信息类
分页类
页面&控制器
登录
注册
信息列表(含分页)
信息详情
信息修改&删除
处理成功页
页面所用CSS
业务层
数据访问层
数据库表
本文涉及:mvc、jsp、Servlet、jdbc综合应用
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
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"):""%>
注册一个
登录控制器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"):""%>
注册控制器
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") : ""%>
用户ID
用户名
密码
操作
<%
if (userinfoBeanList != null && userinfoBeanList.size() > 0) {
for (UserinfoBean userinfoBean : userinfoBeanList) {
%>
<%=userinfoBean.getId()%>
<%=userinfoBean.getUsername()%>
<%=userinfoBean.getUserpwd()%>
查看
修改
删除
<%
}
} else {
%>
无用户信息
<%
}
%>
<%
PageBean pageBean = (PageBean) session.getAttribute("userinfolist_pageBean");
/* session存放翻到第几页此时的pageBean值(包括各项属性,第几页,最大页等),翻到了第二页就是第二页的属性值 */
if (pageBean != null) {
%>
首页 上一页
下一页
尾页
<%
}
%>
后端控制器
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"):""%>
<%
}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
登录成功
@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;
}
}
一个实体类对应一个表,用户信息类只有三个字段,非常简单,自己建下表就行了。