中软国际实训全记录——第四天

中软国际实训第四天——实现数据的增删改查以及用户登录

  • 实现增删改查
  • 实现用户的登录
  • 写在最后

实现增删改查

在ssm中实现对数据的增删改查,我们继续使用昨天创建的项目。
1、在IUserInfoDao中创建相应的接口

public interface IUserInfoDao {
    public List<UserInfo> findAll();          //查询数据
    public void addUser(UserInfo userInfo);           //增加用户
    public void deleteUser(UserInfo userInfo);              //删除用户
    public void updateUser(UserInfo userInfo);           //更新用户数据
}

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

<mapper namespace="com.zhongruan.dao.IUserInfoDao" >
    <select id="findAll" resultType="com.zhongruan.bean.UserInfo">
        select * from userinfo;
    select>

    <insert id="addUser" parameterType="com.zhongruan.bean.UserInfo">
      insert into userinfo(id, username, password) value (#{id}, #{username}, #{password});
    insert>

    <delete id="deleteUser" parameterType="com.zhongruan.bean.UserInfo">
        delete from userinfo where id = #{id};
    delete>

    <update id="updateUser" parameterType="com.zhongruan.bean.UserInfo">
        update userinfo set username=#{username}, password=#{password} where id=#{id};
    update>
mapper>

3、在IUserInfoService中声明服务的接口

public interface IUserInfoService {
    public List<UserInfo> findAll();
    public void add(UserInfo userInfo);
    public void delete(UserInfo userInfo);
    public void update(UserInfo userInfo);
}

4、在UserInfoServiceImpl中实现我们在上文中声明的接口

public class UserInfoServiceImpl implements IUserInfoService {
    @Autowired            //直接实现,不用声明
    IUserInfoDao userInfoDao;
    public List<UserInfo> findAll() { return userInfoDao.findAll(); }
    public void add(UserInfo userInfo) { userInfoDao.addUser(userInfo); }
    public void delete(UserInfo userInfo) { userInfoDao.deleteUser(userInfo); }
    public void update(UserInfo userInfo) { userInfoDao.updateUser(userInfo); }
}

在UserInfoController中控制不同页面的跳转。

@Controller
@RequestMapping("user")
public class UserInfoController {
    @Autowired
    IUserInfoService userInfoService;

    @RequestMapping("findAll.do")
    public ModelAndView findAll(){
        List<UserInfo> users = userInfoService.findAll();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("users", users );
        modelAndView.setViewName("allUser");
        return modelAndView;
    }
    
    @RequestMapping("AddUser.do")         //跳转到添加用户界面
    public String AddUser(){
        return "/addUser";
    }

    @RequestMapping("save.do")           //重定向到主页
    public String AddUser(UserInfo userInfo){
        userInfoService.add(userInfo);
        return "redirect:/user/findAll.do";
    }

    @RequestMapping("delete.do")           //删除用户
    public String DeleteUser(UserInfo userInfo){
        userInfoService.delete(userInfo);
        return "redirect:/user/findAll.do";             //删除后重定向
    }

    @RequestMapping("toUpdate.do")           //跳转到更新用户数据界面
    public String UpdateUser(UserInfo userInfo){
        return "/updateUser";
    }

    @RequestMapping("update.do")             //重定向到主页显示修改后数据
    public String Update(UserInfo userInfo){
        userInfoService.update(userInfo);
        return "redirect:/user/findAll.do";
    }
}

至此我们就实现了对于数据的增删改查。

实现用户的登录

实现用户的登录,我们在这里重新新建一个项目,新建的项目应该是与上文中的增添查改相同的项目结构,在创建好项目之后将老师给我们的页面中的所有文件全部都复制到webapp的目录下,项目结构应该如下所示:
中软国际实训全记录——第四天_第1张图片
图片中的target为建立Tomcat服务器之后并运行产生的。
1、dao文件代码

public interface IUserInfoDao {
    public List<UserInfo> findAll();
    public UserInfo findUser(@Param("username") String username, @Param("password") String password);      //登录用户
}

2、在UserInfoMapper中实现Dao接口

<mapper namespace="com.zhongruan.dao.IUserInfoDao" >
    <select id="finAll" resultType="com.zhongruan.bean.UserInfo">
        select * from userinfo
    select>

    <select id="findUser" resultType="com.zhongruan.bean.UserInfo" parameterType="com.zhongruan.bean.UserInfo">
        select * from userinfo where username = #{username} and password = #{password};
    select>
mapper>

3、在service中定义检查登录的接口

public interface IUserInfoService {
    public List<UserInfo> findAll();
    public boolean checkLogin(String username, String password);
}

4、在serviceimpl中实现service中定义的接口

@Service("userInfoServiceImpl")
public class UserInfoServiceImpl implements IUserInfoService {
    @Autowired
    private IUserInfoDao iUserInfoDao;
    @Override
    public List<UserInfo> findAll(){
        return iUserInfoDao.findAll();
    }
    @Override
    public boolean checkLogin(String username, String password){
        UserInfo user = iUserInfoDao.findUser(username, password);
        boolean flag;
        if (user != null){
            flag = true;
        }else {
            flag = false;
        }
        return flag;
    }
}

在controller中控制页面的跳转

@Controller
@RequestMapping("user")
public class UseInfoController {

    @Autowired
    private IUserInfoService iUserInfoService;

    @RequestMapping("/findAll.do")
    public ModelAndView findAll(){
        ModelAndView modelAndView = new ModelAndView();
        List<UserInfo> userInfos = iUserInfoService.findAll();
        modelAndView.addObject("userInfos",userInfos);
        modelAndView.setViewName("user-list");
        return modelAndView;
    }

    @RequestMapping("login.do")
    public ModelAndView checkLogin(UserInfo userInfo){
        ModelAndView modelAndView = new ModelAndView();
        boolean flag;
        flag = iUserInfoService.checkLogin(userInfo.getUsername(), userInfo.getPassword());          //判断数据库中有无登录用户
        if (flag == true){
            modelAndView.addObject("userInfo", userInfo);
            modelAndView.setViewName("main");           //跳转到主界面
            return modelAndView;
        }
        modelAndView.setViewName("../failer");              //跳转到登录失败界面
        return modelAndView;
    }
}

以此我们就实现了登录的操作。

写在最后

个人对ssm的总结:service包是用来定义一些接口,这些接口实现的主要作用就是对Dao包用sql获取到的数据进行判断;Dao包首先就是定义一个sql操作的接口,然后在resources下的mapper包中实现sql的具体操作;controller包是用来控制各个页面之间的跳转,通过Service中传递来的数据进行判断;bean包中定义了数据的属性以及get与set方法、构造函数、toString的方法。界面则位于webapp下的isp文件中。

你可能感兴趣的:(中软国际实训全记录——第四天)