使用数据库和ssm框架(spring + springmvc + mybatis )写一个简单的书籍管理网站之二——详细解释各种调用层次,以及注解,便于学习理解(附源码)
使用数据库和ssm框架(spring + springmvc + mybatis )写一个简单的书籍管理网站之二——详细解释各种调用层次,以及注解,便于学习理解(附源码)
废话不多说,先给心急的伙伴把全部代码附上:
先说楼主电脑软件配置:idea2018;MySQL5.5.58(不同的可能需要修改代码中驱动和jar包,楼主会出一期MySQL卸载教材,安装教材可以参考上一期;maven3.0)
再说一下,请心急的小伙伴先按照我上一期的内容一步步搭好层次结构:
上一期的连接附上:https://mp.csdn.net/mdeditor/93917511#
层次如图:
ok,现在代码奉上:Userinfo类:
package com.zhongruan.bean; public class Userinfo { private int id; private String username; private String password; 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 getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
UserController类:
package com.zhongruan.controller; import com.zhongruan.bean.Userinfo; import com.zhongruan.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.List; @Controller @RequestMapping("user")//网页地址导航1 public class UserController { @Autowired private IUserService userService; @RequestMapping("/findAll.do")//网页导航2 public ModelAndView findAll(){ List<Userinfo> userinfos = userService.findAll (); ModelAndView modelAndView=new ModelAndView (); modelAndView.addObject ("ui",userinfos); modelAndView.setViewName ("allUser"); return modelAndView; } @RequestMapping("toAddUser.do") public String addUser(Userinfo userinfo) { return "addUser";//返回字符串,等于导航到addUser.jsp } @RequestMapping("delete.do") public String delete(int id) { userService.deleteUser (id); return "redirect:/user/findAll.do"; } @RequestMapping("deleteUser") public String deleteUser(int id) { userService.deleteUser (id); return "redirect:/user/findAll.do"; } @RequestMapping("toUpdate.do") public String update(Model model,int id) { model.addAttribute("userInfo", userService.queryById(id)); return "updateUser"; } @RequestMapping("update.do") public String updateUser( Model model,Userinfo userinfo) { userService.updateUser (userinfo); userinfo=userService.queryById (userinfo.getId ()); model.addAttribute ("userInfo",userinfo); return "redirect:/user/findAll.do"; } @RequestMapping("save.do") public String save(Userinfo userinfo) { userService.addUser (userinfo); //执行相关操作,这里数据库的insert操作 return "redirect:/user/findAll.do";//点击保存,跳到find All.do执行 } }
IUserDao类:
package com.zhongruan.dao; import com.zhongruan.bean.Userinfo; import org.springframework.web.servlet.ModelAndView; import java.util.List; public interface IUserDao { public List<Userinfo> findAll(); public Userinfo addUser(Userinfo userinfo); public void deleteUser(int id);//只能void,因为没有resultType:指定返回值类型//parameterType:是值函数的传参 public void updateUser(Userinfo userinfo);//每一个dao函数都和UserMapper.xml中的一个<select>标签所对应,直接执行sql public Userinfo queryById(int id); } IUserServices接口: package com.zhongruan.service; import com.zhongruan.bean.Userinfo; import org.springframework.web.servlet.ModelAndView; import java.util.List; public interface IUserService { public List<Userinfo> findAll(); public void addUser(Userinfo userinfo); public void deleteUser(int id); public void updateUser(Userinfo userinfo); public Userinfo queryById(int id); } UserServices接口的实现: package com.zhongruan.service.impl; import com.zhongruan.bean.Userinfo; import com.zhongruan.dao.IUserDao; import com.zhongruan.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.servlet.ModelAndView; import java.util.List; @Service//注解,IUserService放进spring public class UserServiceimpl implements IUserService { @Autowired//注解,把spring中的iUserDao生成后取出 IUserDao iUserDao; @Override public List<Userinfo> findAll() { return iUserDao.findAll (); } public void addUser(Userinfo userinfo) { iUserDao.addUser (userinfo); } public void deleteUser(int id) { iUserDao.deleteUser (id); } public void updateUser(Userinfo userinfo) { iUserDao.updateUser (userinfo); } public Userinfo queryById(int id) { return iUserDao.queryById(id); } } //层次结构是:1.Userinfo是对象的类;2.IUserService是一个接口;3.UserServiceimpl是上面接口的实现,在里面调用IUserDao //4.IUserDao是接口,里面的函数与UserMapper一一对应;5.UserController中实现功能,他有一个UserService对象,然后递归调用方法 //直到数据库,即可;注意页面的跳转。 UserMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.zhongruan.dao.IUserDao" > <select id="findAll" resultType="com.zhongruan.bean.Userinfo"> select * from userinfo </select> <select id="addUser" resultType="com.zhongruan.bean.Userinfo"> insert into userinfo(id,username,password) value (#{id},#{username},#{password}) </select> <select id="deleteUser"> delete from userinfo where id=#{id} </select> <update id="updateUser" parameterType="com.zhongruan.bean.Userinfo"> update userinfo set username=#{username},password=#{password} where id=#{id} </update> <select id="queryById" parameterType="int" resultType="com.zhongruan.bean.Userinfo"> select * from userinfo where id=#{id} </select> </mapper>
其他的在前一篇的素材中。现在给大家看看实现结果(都是学生我懂得):
基本上就实现了简单增删改查了。马上进入解惑环节:心急的小伙伴可以先收藏下次有空再看哦。
1.层次结构看上去很复杂,框架啥的不懂咋办?
答:层次虽然对于新手很复杂,却是企业开发项目开发的正式结构,希望大家可以提前掌握,用处很多,也有利于找bug和锻炼自己的思维模式。
框架是很难,但是不慌,会用即可,目前先大致了解一下,之后我们再深度学习。
2.上面项目的层次调用是啥啊?就看一堆名字差不多的类?看不懂鸭?
答:层次结构是:
-
1.Userinfo是对象的类;
2.IUserService是一个接口;
3.UserServiceimpl是上面接口的实现,在里面调用IUserDao
4.IUserDao是接口,里面的函数与UserMapper一一对应;
5.UserController中实现功能,他有一个UserService对象,然后递归调用方法直到数据库,即可;注意页面的跳转。
3.页面咋跳转的啊?
答:通过在UserController中的有些函数的return来实现,比如return"allUser";
来跳转到allUser.jsp所对应的页面。
4.那些标签@
啥意思啊,看不懂UserControlle中函数的跳转和返回?
答:@RequestMapping(“user”)//网页地址导航函数
return “redirect:/user/findAll.do”;//跳转user标签下的findAll.do。
- 文档转载,可以参考。SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- 使用idea搭建一个简单的SSM框架:(3)配置spring+mybatis
- 文档转载,可以参考。SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM框架下利用mybatis-spring.jar整合包,以及利用注解@transactional实现事务管理
- 使用maven构建一个SSM(Spring+SpringMVC+Mybatis(阿里数据连接池)的简单环境
- 超级详细的新手在Idea中使用maven配置Spring+springmvc+mybatis(SSM)框架步骤
- 使用注解springmvc+spring+mybatis一个简单ajax例子
- SSM框架使用Maven构建环境详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程 一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。 Spring作为一个轻量级
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- J2EE项目系列(四)--SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis)(3)Ajax使用详解(级联列表)以及企业级报表Excel导入导出实现
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释