实训日志2SSM框架了解和实现简单用户管理系统的增删改查

实训⽇志2SSM框架了解和实现简单⽤户管理系统的增删改查SSM框架
1、Spring技术
spring是⼀个容器框架,它可以接管web层,业务层,dao层,持久层的各个组件,并且可以配置各种bean, 并可以维护bean与bean 的关系。
IOC 控制反转:
不再需要程序员去显式地new⼀个对象,⽽是让Spring框架帮你来完成这⼀切。IOC容器负责实例化、定位、配置应⽤程序中的对象及建⽴这些对象间的依赖。把创建对象和维护对象之间的关系的权利从程序转移到spring的容器。
AOP ⾯向切⾯编程
核⼼:在不增加代码的基础上,还增加新功能。
什么是切⾯?你可以这样想:⼀个公司有多个销售部,都需要⾏政帮忙搞定⽇常的订⽂具、机票、办公室、出差酒店什么的,都需要财务搞定报销、收付款什么的事务吧,要仓库帮忙发货什么的。不可能每个销售部都去招⼏个⾏政、财务和仓管什么吧,销售部门只要做好业务就⾏了,订⽂具什么的事情交个
专门的部门去办就⾏。在Spring AOP 中,把这些公共的事务,也就是这个例⼦中的⾏政啊、财务啊、仓管啊,看成⼀个个切⾯,让你的开发的时候,专注于核⼼业务。
吸音海绵
2、Spring MVC
C - Controller:控制器。接受⽤户请求,调⽤ Model 处理,然后选择合适的View给客户。
带通滤波器M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。
V - View:视图。返回给客户看的结果。注意这⾥的客户未必是⼈,可能是浏览器,可能是APP
3、MyBatis
是对jdbc的封装,它让数据库底层操作变的透明。Mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。
SSM框架简单⽤户管理系统的增删改查的实现
⽤户登陆的实现以及⽤户的增删改查实现
1、⾸先仍然先创建User实体类:
public class User {
private int id;
private String username;
private String password;
public User() {
}
public User(int id, String username, String password) {        this.id = id;
管式热交换器this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public String getUsername() {
return username;
}
public void setId(int id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
2、创建IUserDao接⼝和l进⾏关联,
public interface IUserDao {
User findUserByUserName(String username);
List<User> findAll();
void deleteById(int id);
void add(User user);
User selectUserById(int id);
void update(User user);
}
相应的数据库操作语句,包括增删改查操作,与IUserDao中⽅法⼀致
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="dao.IUserDao">
<!--别名user⼩写-->
<select id="findUserByUserName" parameterType="String" resultType="user">
select * from tb_user where username=#{username}
</select>
<select id="findAll" resultType="user">
select * from tb_user
</select>
<select id="deleteById" resultType="user">
delete from tb_user where id=#{id}
</select>
<select id="add" resultType="user">
insert into tb_user(username,password) values (#{username},#{password})
</select>
<select id="selectUserById" parameterType="int" resultType="user">
select * from tb_user where id=#{id}
</select>
<update id="update" parameterType="user">
update tb_user set username=#{username},password=#{password}
where id=#{id}
</update>
</mapper>
3、编写Service层,IUserService接⼝和UserServiceImpl对其的具体实现
IUserService
public interface IUserService {
boolean login(String username,String password);
List<User> findAll();
void deleteById(int id);
void add(User user);
User selectUserById(int id);
void update(User user);
}
UserServiceImpl,这⾥可以看到我们让容器给我们⾃动创建了IUserDao类,在其中写了包括登陆,查询所有,删除,添加以及更新修改的逻辑业务。
@Service
public class UserServiceImpl implements IUserService {
//容器创建new
@Autowired
private IUserDao userDao;
@Override
public boolean login(String username, String password) {
干电池手机User user=userDao.findUserByUserName(username);
if(user!=null&&Password().equals(password)){
return true;
}
return false;
}
@Override
public List<User> findAll() {
return userDao.findAll();
莲子剥壳机}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public User selectUserById(int id) {
User user=userDao.selectUserById(id);
return user;
}
@Override
眼部艾灸器
public void update(User user) {
userDao.update(user);
}
}
4、编写Controller层,下⾯为UserConntroller具体代码,这⾥主要调⽤service层⽅法,创建modelandview并返回相应视图。同时这⾥也有使⽤redirect重定向,redirect是直接跳转到其他页⾯:
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("login.do")
public ModelAndView login(User user){
boolean flag=userService.Username(),Password());
ModelAndView modelAndView=new ModelAndView();
if(flag){
modelAndView.setViewName("main");
}
else{
else{
modelAndView.setViewName("../failer");
}
return modelAndView;
}
@RequestMapping("findAll.do")
public  ModelAndView findAll(){
List<User> users=userService.findAll();
ModelAndView mv=new ModelAndView();
mv.setViewName("user-list");
mv.addObject("users",users);
return mv;
}
@RequestMapping("deleteById.do")
public  String  delete(int id){
userService.deleteById(id);
return "redirect:findAll.do";
}
@RequestMapping("add.do")
public String add(User user){
userService.add(user);
return "redirect:findAll.do";
}
@RequestMapping("toUpdate.do")
public ModelAndView toUpdate(int id){
User user=userService.selectUserById(id);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("user-update");
return modelAndView;
}
@RequestMapping("update.do")
public String update(User user){
userService.update(user);
return "redirect:findAll.do";
}
}
5、实现前端的相应,跳转到指定界⾯以及实现相应的操作
⾸先为登陆表单,action为/user/login.do,所以他会到conntroller中到与/user/login.do对应的视图,进⾏操作处理:

本文发布于:2024-09-22 23:28:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/245422.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:业务   操作   处理   相应   实现   增删   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议