需求如下:
数据库设计:
Userinfo:
id 住建 学号
username varchar50 账号
password varchar50 密码
sex char 1 性别
age int 年龄
likes varchar50 爱好
项目如下:
项目启动显示所有用户信息。
然后实现用户的增删改查。
思路:
1.建库建表插入测试数据
2.创建基本的web项目并配置tomcat服务器
3.导入项目需要的jar包
4.搭建基本的package---entity-servlet-test-dao-util
5.根据数据库设计,创建与之对应的实体类
6.创建util获取Connetion ,并在测试类进行测试7.项目需求是启动项目就要呈现所有的用户数据。
8.书写项目相关的dao方法
代码如下:
初始化数据
//初始化数据
@WebServlet("/InitServlet")
public class InitServlet extends HttpServlet {
UserinfoDao ud = null;
@Override
public void init() throws ServletException {
ud = new UserinfoDao();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取数据
List<Userinfo> list = ud.queryAll();
//保存数据
req.setAttribute("list",list);
//跳转首页
req.getRequestDispatcher("index.html").forward(req,resp);
}
}
增数据
//添加指定id的数据
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
UserinfoDao ud = null;
@Override
public void init() throws ServletException {
ud = new UserinfoDao();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
int age =Integer.parseInt(req.getParameter("age")) ;
String likes = req.getParameter("likes");
Userinfo userinfo = new Userinfo(username,password,sex,age,likes);
boolean b = ud.add(userinfo);
if (b){
//添加成功
req.getSession().setAttribute("info","添加成功");
}else{
//添加失败
req.getSession().setAttribute("info","添加失败");
}
resp.sendRedirect("/InitServlet");
}
}
删数据
//删除指定id的数据
@WebServlet("/DelServlet")
public class DelServlet extends HttpServlet {
UserinfoDao ud = null;
@Override
public void init() throws ServletException {
ud = new UserinfoDao();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("id");
int i = Integer.parseInt(id);
boolean b = ud.del(i);
if (b){
//删除成功
req.getSession().setAttribute("info","删除成功");
}else{
//删除失败
req.getSession().setAttribute("info","删除失败");
}
// //跳转首页是错误的选择 因为数据已经发生了变化。即使删除失败,首页的数据早就过期了
// req.getRequestDispatcher("index.html").forward(req,resp);
//这么写 也是不合理, 因为转发不会修改url地址,会导致用户刷新页面再次重复提交该请求。
// req.getRequestDispatcher("/InitServlet").forward(req,resp);
resp.sendRedirect("/InitServlet");
}
}
改数据
//修改数据
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
UserinfoDao ud = null;
@Override
public void init() throws ServletException {
ud = new UserinfoDao();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id")) ;
String username = req.getParameter("username");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
int age =Integer.parseInt(req.getParameter("age")) ;
String likes = req.getParameter("likes");
Userinfo userinfo = new Userinfo(id,username,password,sex,age,likes);
boolean b = ud.update(userinfo);
if (b){
//修改成功
req.getSession().setAttribute("info","修改成功");
}else{
//修改失败
req.getSession().setAttribute("info","修改失败");
}
resp.sendRedirect("/InitServlet");
}
}