界面设计
自己修改界面,能用就行。
代码部分
我们着重讲下用户功能模块就行 ,酒店和订单相似于用户模块
DAO层:
接口提供如下方法:
接口实现:
public class UserDaoImpl implements UserDao {
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public User findByUser(String username) {
User user = null;
try {
//定义sql
String sql = "select * from tab_user where username=?";
//执行
user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username);
} catch (Exception e) {
}
return user;
}
@Override
public void save(User user) {
//定义sql
String sql = "insert into tab_user(username,password,`name`,birthday,sex,telephone,email,status,code) values(?,?,?,?,?,?,?,?,?)";
//执行
template.update(sql, user.getUsername(),
user.getPassword(),
user.getName(),
user.getBirthday(),
user.getSex(),
user.getTelephone(),
user.getEmail(),
user.getStatus(),
user.getCode()
);
}
/*
* 查询全部用户个数
* */
@Override
public int findCount() {
String sql = "select count(*) from tab_user";
return template.queryForObject(sql, Integer.class);
}
@Override
public List<User> findByPage(int start, int pageSize) {
String sql = " select * from tab_user where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
List prams = new ArrayList();
sb.append(" limit ?,?");
sql = sb.toString();
prams.add(start);
prams.add(pageSize);
List<User> list = template.query(sql, new BeanPropertyRowMapper<User>(User.class), prams.toArray());
return list;
}
@Override
public boolean update(User user) {
String sql = "update tab_user set username=?,password=?,`name`=?,birthday=?,sex=?,telephone=? ,email=? where username=?";
int update = template.update(sql, user.getUsername(), user.getPassword(), user.getName(), user.getBirthday(), user.getSex(), user.getTelephone(), user.getEmail(), user.getUsername());
if (update != 0) {
return true;
}
return false;
}
@Override
public void delUser(String username) {
String sql = "delete from tab_user where username = ?";
template.update(sql, username);
}
@Override
public void delFavorite(int uid) {
String sql = "delete from tab_favorite where uid=?";
template.update(sql, uid);
}
@Override
public User findUserByUid(int uid) {
String sql = "select * from tab_user where uid =?";
return template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), uid);
}
service层:
public class UserserviceImpl implements Userservice {
private UserDao userDao = new UserDaoImpl();
@Override
public PageBean<User> pageQuery(int currentPage, int pageSize) {
//封装PageBean,返回
int totalCount = userDao.findCount();//总的记录数
int start = (currentPage - 1) * pageSize;
List<User> list = userDao.findByPage(start, pageSize);//每页显示的数据
int totalPage = 0;
if (totalCount % pageSize == 0) {
totalPage = totalCount / pageSize;
} else {
totalPage = totalCount / pageSize + 1;
}
PageBean<User> pb = new PageBean<User>();
pb.setTotalCount(totalCount);
pb.setTotalPage(totalPage);
pb.setPageSize(pageSize);
pb.setCurrentPage(currentPage);
pb.setList(list);
return pb;
}
@Override
public boolean regist(User user) {
//根据用户名查询对象
String username = user.getUsername();
User byUser = userDao.findByUser(username);
if (byUser != null) {
//用户名存在
return false;
}
//保存用户信息
//1 设置激活码
String uuid = UuidUtil.getUuid();
user.setCode(uuid);
//设置激活状态
user.setStatus("N");
userDao.save(user);
//激活邮件发送, 邮件正文
String content = "<a href='http://localhost/travel/user/active?code=" + user.getCode() + "'>点击激活【黑马旅游网】</a>";
MailUtils.sendMail(user.getEmail(), content, "激活邮件");
return true;
}
@Override
public User findUserByUsername(String username) {
//调用userDao查询user 返回
User user = userDao.findByUser(username);
return user;
}
@Override
public boolean update(User user) {
return userDao.update(user);
}
@Override
public boolean delUser(String username) {
User user = userDao.findByUser(username);
int uid = user.getUid();
userDao.delFavorite(uid);
if (user != null) {
userDao.delUser(username);
return true;
}
return false;
}
@Override
public User findUserByUid(String uid) {
return userDao.findUserByUid(Integer.parseInt(uid));
}
}
servlet层:
@WebServlet("/user/*")
public class UserServlet extends BaseServlet {
private Userservice service = new UserserviceImpl();
/*
* 注册
* */
public void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//验证码的校验
String check = request.getParameter("check");
//获取session里面的验证码
String checkcode_server = (String) request.getSession().getAttribute("CHECKCODE_SERVER");
request.getSession().removeAttribute("CHECKCODE_SERVER");
if (checkcode_server == null || !checkcode_server.equalsIgnoreCase(check)) {
//验证码错误
ResultInfo info = new ResultInfo();
info.setFlag(false);
info.setErrorMsg("验证码错误");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
return;
}
//1获取数据
Map<String, String[]> map = request.getParameterMap();
//2 封装对象
User user = new User();
try {
BeanUtils.populate(user, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//3 使用userservice 调用方法
//UserService userService = new UserServiceImpl();
boolean flag = service.regist(user);
ResultInfo info = new ResultInfo();
//4 相应数据
if (flag) {
//注册成功
info.setFlag(true);
} else {
//注册失败
info.setFlag(false);
info.setErrorMsg("注册失败");
}
//将info对象序列化json数据
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
}
/*
*分页查询
* */
public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws IOException {
//接受参数
String currentPageStr = request.getParameter("currentPage");
String pageSizeStr = request.getParameter("pageSize");
/* String cidStr = request.getParameter("cid");
//接受rname
String rname = request.getParameter("rname");
rname = new String(rname.getBytes("iso-8859-1"), "utf-8");
//处理参数
int cid = 0;
if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {
cid = Integer.parseInt(cidStr);
}*/
int currentPage = 0;
if (currentPageStr != null && currentPageStr.length() > 0) {
currentPage = Integer.parseInt(currentPageStr);
} else {
currentPage = 1;
}
//每页显示条数
int pageSize = 0;
if (pageSizeStr != null && pageSizeStr.length() > 0) {
pageSize = Integer.parseInt(pageSizeStr);
} else {
pageSize = 5;
}
//调用service查询pageBean对象
PageBean<User> pageBean = service.pageQuery(currentPage, pageSize);
//将pageBean对象序列化为json,返回
writeValue(pageBean, response);
}
public void update(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
System.out.println(username);
//调用service查询uers对象
User user = service.findUserByUsername(username);
writeValue(user, response);
}
public void updateUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
//1 获取数据
Map<String, String[]> map = request.getParameterMap();
//2封装对象
User user =new User();
try {
BeanUtils.populate(user, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
boolean flag = service.update(user);
ResultInfo info = new ResultInfo();
//4 相应数据
if (flag) {
//修改成功
info.setFlag(true);
} else {
//修改成功
info.setFlag(false);
info.setErrorMsg("修改失败");
}
writeValue(info,response);
}
public void delUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
//1接受参数
String username = request.getParameter("username");
System.out.println(username);
//2调用service方法删除
boolean flag = service.delUser(username);
ResultInfo info = new ResultInfo();
//4 相应数据
if (flag) {
//删除成功
info.setFlag(true);
} else {
//修改成功
info.setFlag(false);
info.setErrorMsg("删除失败");
}
writeValue(info,response);
}
}