网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
| 03 | tb_warehouse | 仓库表 | 仓库 |
| 04 | tb_record | 出入库记录表 | 出入库记录 |
| 05 | tb_checkrecord | 成本核算表 | 成本核算 |
| 06 | tb_purchase | 采购表 | 采购 |
| 07 | tb_purchaser | 采购员表 | 采购员 |
3.2数据库逻辑结构设计
四、运行效果截图
4.1登陆界面
4.2用户登录后界面
4.3管理员登录后界面
五、代码展示
5.1登录界面
/**
* 用于登陆的Servlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private SqlSession sqlSession;
//查询数据mapper
private AdminDao adminDao;
private PurchaserDao purchaserDao;
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
sqlSession = JdbcUtils.getSession();
req.setCharacterEncoding("utf-8");
//登陆的用户
LoginUser loginUser;
String username = req.getParameter("username");
String password = req.getParameter("password");
String usertype = req.getParameter("usertype");
if(usertype.equals("admin")) {
Admin admin =new Admin ();
admin.setUsername(username);
admin.setPassword(password);
QueryWrapper<Admin> wrapperAdmin = new QueryWrapper();
wrapperAdmin.eq("username", username).eq("password", password);
adminDao =sqlSession.getMapper(AdminDao. class);
loginUser = adminDao.selectOne(wrapperAdmin);
if (loginUser != null) {
sqlSession.close();
req.getSession().setAttribute("user", loginUser);
req.getSession().setAttribute("role", "admin");
resp.sendRedirect(req.getContextPath() + "/hello.jsp");
return;
}
}
if(usertype.equals("purchaser")) {
Purchaser purchaser =new Purchaser ();
purchaser.setUsername(username);
purchaser.setPassword(password);
QueryWrapper<Purchaser> wrapperPurchaser = new QueryWrapper();
wrapperPurchaser.eq("username", username).eq("password", password);
purchaserDao =sqlSession.getMapper(PurchaserDao. class);
loginUser = purchaserDao.selectOne(wrapperPurchaser);
if (loginUser != null) {
sqlSession.close();
req.getSession().setAttribute("user", loginUser);
req.getSession().setAttribute("role", "purchaser");
resp.sendRedirect(req.getContextPath() + "/hello.jsp");
return;
}
}
sqlSession.close();
//登陆失败,就重新登陆
req.setAttribute("message","账号密码有误,登陆失败");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
5.2采购员用户
/**
* 采购员
*/
@TableName("tb\_purchaser")
public class Purchaser implements Serializable ,LoginUser{
/**
*主键
*/
@TableId
private String id;
/**
*用户名
*/
private String username;
/**
*密码
*/
private String password;
/**
*角色
*/
private String role;
/**
*姓名
*/
private String name;
/**
*电话
*/
private String tele;
/**
*性别
*/
private String gender;
public String getId () {
return id;
}
public void setId (String id ) {
this.id = id;
}
public String getUsername () {
return username;
}
public void setUsername (String username ) {
this.username = username;
}
public String getPassword () {
return password;
}
public void setPassword (String password ) {
this.password = password;
}
public String getRole () {
return role;
}
public void setRole (String role ) {
this.role = role;
}
public String getName () {
return name;
}
public void setName (String name ) {
this.name = name;
}
public String getTele () {
return tele;
}
public void setTele (String tele ) {
this.tele = tele;
}
public String getGender () {
return gender;
}
public void setGender (String gender ) {
this.gender = gender;
}
}
5.3管理员
/**
* 查询管理员
*/
@WebServlet("/admin/list")
public class ListAdminServlet extends HttpServlet {
private SqlSession sqlSession;
//查询数据mapper
private AdminDao adminDao;
//查询外键数据的mapper
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
sqlSession = JdbcUtils.getSession();
req.setCharacterEncoding("utf-8");
QueryWrapper<Admin> wrapper = new QueryWrapper<Admin>();
String username = req.getParameter("username");
if(username !=null && !username.equals("")){
wrapper.like("username",username);
}
String name = req.getParameter("name");
if(name !=null && !name.equals("")){
wrapper.like("name",name);
}
adminDao = sqlSession.getMapper(AdminDao .class);
List<Admin> adminList = adminDao .selectList(wrapper);
//将数据放入request
//循环遍历list数据,统计、获取外键数据



**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**
链图片转存中...(img-yYouWMe4-1715676257921)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**