Java-中软-3 ssm——实现用户的增删改查与登录

1.Spring:控制反转 控制权的转移 spring容器帮我们创建对象
2.SpringMVC:servlet
3.MyBatis:持久层框架 orm
4.依赖注入的两种方式:
在配置文件配置bean:

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描bean包 使用别名 -->
        <property name="typeAliasesPackage" value="com.summer.bean"></property>
        <!--配置加载映射文件 UserMapper.xml-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

在类前面加上注释@Service

  @Service
public class UserServiceImpl implements IUserService {
    @Autowired
    private IUserDao userDao;
    @Override
    public boolean login(String username, String password) {
        User user = userDao.findUserByUsername(username);
        if(user!=null&&user.getPassword().equals(password)){
            return true;
        }
        return false;
    }
    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }
}

5.转发(forward)VS重定向(redirect):
重定向相当于直接在地址栏输入一个新的网址,这个网址自然会显示在地址栏上,当然是可见的。
转发就是从其他页面跳转过来,跳转后显示在眼前页面的地址并不是当前页面的地址,而是上一个页面的地址(或servlet处理上一个页面请求的地址),因此,当前页面的地址当然是不可见的。
比较:
1.重定向的地址栏会发生变化,转发的地址栏不变.
2.重定向两次请求两次响应,转发一次请求一次响应.

增删改查&登录
1、在IUserDao中创建相应的接口

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);
}

2、在UserMapper中实现Dao接口,也就是对数据库进行操作

<mapper namespace="com.summer.dao.IUserDao">
    <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>
    <delete id="deleteById" parameterType="int">
        delete from tb_user where id=#{id}
    </delete>
    <insert id="add" parameterType="user">
        insert into tb_user(username,password) values (#{username},#{password})
    </insert>
    <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、在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);
}

4、在UserServiceImpl中实现IUserService中声明的接口

@Service
public class UserServiceImpl implements IUserService {
    @Autowired
    private IUserDao userDao;
    @Override
    public boolean login(String username, String password) {
        User user = userDao.findUserByUsername(username);
        if(user!=null&&user.getPassword().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) {
        return userDao.selectUserById(id);
    }
    @Override
    public void update(User user) {
        userDao.update(user);
    }
}

5、在UserController中控制不同页面的跳转。

@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private IUserService userService;
    @RequestMapping("login.do")
    public ModelAndView login(String username,String password){
        boolean flag = userService.login(username, password);
        ModelAndView modelAndView=new ModelAndView();
        if(flag){
            modelAndView.setViewName("main");
        }else {
            modelAndView.setViewName("../failer");
        }
        return modelAndView;
    }
    @RequestMapping("findAll.do")
    public ModelAndView findAll(){
        List<User> users=userService.findAll();
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("user-list");
        modelAndView.addObject("users",users);
        return modelAndView;
    }
    @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";
    }
}

登录
在这里插入图片描述
主界面-登录成功
在这里插入图片描述
用户管理-全部用户
在这里插入图片描述
用户管理-新建用户
在这里插入图片描述
在这里插入图片描述
用户管理-删除用户
在这里插入图片描述
用户管理-更新用户
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43296415/article/details/107525727