宁波实习Day-3

一.项目框架

首先放上项目结构图

在这里插入图片描述

这里简单描述下各模块关系:
  • UserInfo:即对应数据库表user的实体类
  • IUserInfoController: 控制层,负责页面跳转和前后台数据的传递
  • IUserInfoDao: 持久层,负责数据库的增删改查
  • IUserInfoSeivice: 业务层,Dao和Controller的中间角色
  • IUserInfoServiceImpl: 实现IuserInfoService接口
  • UserMapper.xml: 执行SQL(MyBatis)
  • applicationContext.xml: 配置文件(数据库,Dao,事务等)

项目源码剖析:

1.UserInfo.java,实体类包括属性,构造方法,Get,Set和toString方法。
package com.maxing.bean;

public class UserInfo {
    private int id;
    private String username;
    private String password;

    public UserInfo() {
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + 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;
    }
}
2.IUserInfoDao.java(沟通service和UserMapper.xml)
public interface IUserInfoDao {
    List<UserInfo> findAll();
    boolean addUser(UserInfo userInfo);
    boolean deleteUserById(int id);
    boolean updateUser(UserInfo userInfo);
    UserInfo queryById(int id);
}
3. UserMapper.xml,SQL语句封装在MyBatis中,注意:

id中的值,必须和IUserDao接口中的方法名相同;
resultType:查询结果返回的类型,前面已经添加了命名空间,所以可以直接用UserInfo

<?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.maxing.dao.IUserInfoDao" >
  <select id="findAll" resultType="com.maxing.bean.UserInfo">
      select * from userinfo
  </select>

   <insert id="addUser" parameterType="UserInfo">
       insert into userinfo(username, password) value (#{username}, #{password})
   </insert>

   <delete id="deleteUserById" parameterType="int">
       delete from userinfo where id = #{id}
   </delete>

   <update id="updateUser" parameterType="UserInfo">
       update userinfo set username = #{username},password = #{password} where id = #{id}
   </update>

   <select id="queryById" resultType="com.maxing.bean.UserInfo">
       select * from userinfo where id = #{id}
   </select>
</mapper>
4.IUserInfoServiceImpl.java:IUserInfoService的具体实现类
@Service("userInfoService")
public class IUserInfoServiceImpl implements IUserInfoService {
   @Autowired
   IUserInfoDao IUserInfoDao;

   @Override
   public List<UserInfo> findAll() {

       return IUserInfoDao.findAll();
   }

   @Override
   public boolean addUser(UserInfo userInfo) {

       return IUserInfoDao.addUser(userInfo);
   }

   @Override
   public boolean deleteUserById(int id) {

       return IUserInfoDao.deleteUserById(id);
   }

   @Override
   public boolean updateUser(UserInfo userInfo) {

       return IUserInfoDao.updateUser(userInfo);
   }

   @Override
   public UserInfo queryById(int id) {

       return IUserInfoDao.queryById(id);
   }
}
5.IUserInfoController.java:控制页面跳转和数据传递
@Controller
@RequestMapping("user")
public class IUserInfoController {

   @Autowired
   IUserInfoService userInfoService;

   @RequestMapping("findAll.do")
   public ModelAndView findAll() {
       List<UserInfo> users = userInfoService.findAll();
       ModelAndView mv = new ModelAndView();
       mv.addObject("users", users);
       mv.setViewName("allUser");     //页面
       return mv;         //执行跳转
   }

   @RequestMapping("toAddUser.do")
   public String toAddUser() {
       return "addUser";
   }

   @RequestMapping("save.do")
   public String save(UserInfo userInfo) {
       userInfoService.addUser(userInfo);
       return "redirect:/user/findAll.do";
   }

   @RequestMapping("delete.do")
   public String delete(@RequestParam int id) {
       userInfoService.deleteUserById(id);
       return "redirect:/user/findAll.do";
   }

   @RequestMapping("toUpdate.do")
   public String upUpdate(Model model, @RequestParam int id) {
       model.addAttribute("userInfo", userInfoService.queryById(id));
       return "updateUser";
   }

   @RequestMapping("update.do")
   public String update(UserInfo userInfo) {
       userInfoService.updateUser(userInfo);
       return "redirect:/user/findAll.do";
   }
}

运行结果如下(Tomcat7.0):

在这里插入图片描述
在这里插入图片描述
附:在自己安装的maven目录下寻找conf/settings.xml,添加淘宝镜像和设置本地仓库

<localRepository>自己指定的目录</localRepository>

//添加淘宝镜像
<mirrors>
    <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>

</mirrors>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值