初学javaweb+mybatis练习宠物管理系统小项目
完整动物商店小项目实现
整体项目要求:
实现前后端数据的交互实现用户的登录和注册能够实现宠物库的内容的查询和展示能够完成宠物的添加、修改、删除、排序操作涉及知识
掌握Maven项目的创建配置、mybatis的配置使用、前端基础知识、servlet请求等
整个项目构成
选择javaweb项目
在项目 pom.xml中进行配置
注意:驼峰是命名法与数据库的属性名的命名规则
ej:实体属性 uName ==> 数据库属性名 u_name
创建实体类
可以参考上篇博文
编辑mybatis-configs.xml 配置文件 添加到resources目录中
编辑mybatis-configs.xml 配置文件 添加到resources目录中
目的:连接数据源(对应的数据库)、配置命名规则、配置映射文件的位置
创建对应的接口 mapper 文件 定义操作方法
创建对应接口的mapper.xml配置文件 实现具体的接口方法。(见博客)
第五步 创建数据库工具类 dao类调用mapper中的方法,进一步连接前端实现数据与数据库的互动
调用接口方法 步骤:
创建会话工厂、创建会话、获得映射接口对象、调用接口方法 (如下)
//实现用户的登录查找 //创建会话工厂创建器 static SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); public static boolean userLink(String user, String password){ //创建工厂 try { SqlSessionFactory factory = builder.build(Resources.getResourceAsStream("mybatis-configs.xml")); //创建会话 SqlSession sqlSession = factory.openSession(); //获得映射接口对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); //调用接口 List<User> users= mapper.selectUserExist(user,password); //提交语句 sqlSession.commit(); return !users.isEmpty(); } catch (Exception e) { e.printStackTrace(); } return false; }
1234567891011121314151617181920212223 第六步 创建servlet类 实现前后端数据的交互例用户登录的实现 具体步骤
创建servlet类 继承 父类 HttpServlet实现父类的 doGet doPost方法HttpServletRequest , HttpServletResponse 请求响应页面内容读取内容,传入到需要的参数调用dao类方法 实现具体功能/** * 用户登录 交互类 */ // 注册对应的页面 @WebServlet("/login.do") public class UserServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); //设置相应数据的内 resp.setContentType("text/html;charset=utf-8"); // 获取用户请求的参数 String username = req.getParameter("username"); String password = req.getParameter("password"); req.setAttribute("username","3030"); // 调用接口方法 实现用户的查询 返回一个boolean型参数 if( UserDao.userLink(username,password)){ // 跳转主界面 req.getRequestDispatcher("success.do").forward(req,resp); }else{ // 跳转失败界面 req.getRequestDispatcher("faile.jsp").forward(req,resp); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }
12345678910111213141516171819202122232425262728293031323334 前端方面注意事项servlet页面注册 一定一定 要对应jsp页面(见下图)
否则基本报错 404 某个页面没有访问…之类的问题(本次实践中出现最多的问题)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
要是用内嵌标签 需要提前声明
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> 1
jsp的page指令的isELIgnored属性(是否忽略EL表达式)没有设置导致的,在没有设置的情况下默认为true,也就是忽略El表达式,EL表达式的内容将作为字符串.
<table align="center" border="1" style="margin: 0px auto;width: 500px; height: auto"> <tr> <td>姓名</td> <td>性别</td> <td>类型</td> <td>年龄</td> <td>价格</td> </tr> <c:forEach var = "pet" items="${pets}"> <tr> <td>${pet.petName}</td> <td>${pet.petSex}</td> <td>${pet.petType}</td> <td>${pet.petAge}</td> <td>${pet.petPrice}</td> </tr> </c:forEach> </table>
123456789101112131415161718结果展示:
登录界面 实现 进入到宠物商店主页 可以进行具体的操作
查询全部宠物 并 在前段展示 部分源码展示:
Servlet类
@WebServlet("/success.do") public class PetServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 将集合保存到request中 List<Pet> pets = PetDao.showAll(); req.setAttribute("pets",pets); req.getRequestDispatcher("success.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } 123456789101112131415
前端实现
<form action="/success.do" method="post"> <table align="center" border="1" style="margin: 0px auto;width: 500px; height: auto"> <tr> <td>姓名</td> <td>性别</td> <td>类型</td> <td>年龄</td> <td>价格</td> </tr> <c:forEach var = "pet" items="${pets}"> <tr> <td>${pet.petName}</td> <td>${pet.petSex}</td> <td>${pet.petType}</td> <td>${pet.petAge}</td> <td>${pet.petPrice}</td> </tr> </c:forEach> </table> </form>
1234567891011121314151617181920数据库工具类(包含 接口及配置)
接口 List<Pet> showAllPets(); 接口配置 <!--遍历--> <select id="showAllPets" resultType="com.strive.entity.Pet"> select * from school.tb_pets </select> 工具类 /** * 展示全部宠物 */ public static List<Pet> showAll(){ List<Pet> list = new ArrayList<>(); try { //获得映射接口对象 PetMapper mapper = returnSqlSession().getMapper(PetMapper.class); //调用接口 list = mapper.showAllPets();; //提交语句 returnSqlSession().commit(); return list; } catch (Exception e) { e.printStackTrace(); } return null; }
123456789101112131415161718192021222324252627282930相关知识
毕设项目:宠物之家管理系统(JSP+java+springmvc+mysql+MyBatis)
江鳥/宠物管理系统项目
宠物管理系统项目有哪些
【软件工程导论】软件项目系统需求分析说明书——宠物店铺管理系统
宠物管理系统:个性化项目方案,宠物管理的智能时代
01、基于SSM的宠物领养管理系统项目介绍和项目演示
python+flask计算机毕业设计在线考试与练习系统(程序+开题+论文)
【网站项目】基于ssm236宠物医院管理系统
127.四、3.指运练习曲三
三到五岁宝宝初学轮滑教程
网址: 初学javaweb+mybatis练习宠物管理系统小项目 https://www.mcbbbk.com/newsview548944.html
上一篇: 家里是个很适合给宠物... |
下一篇: 基于SpringBoot+Vue |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352