Spring整合Mybatis(续)


Spring整合Mybatis:
https://blog.csdn.net/qq_45740503/article/details/116043332
Spring整合Mybatis: https://blog.csdn.net/qq_45740503/article/details/116043332.

一级目录

1、导入SpringMVC相关jar包

        <!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc-->
        <!--导入SpringMVC依赖包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <!--导入文件上传依赖包-->
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

        <!--导入jstl标签库-->
        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

完整的:

        <!--导入mysql驱动-->
        <!--导入mybatis依赖包-->
        <!--导入log4j依赖包-->

        <!--导入Spring依赖-->
        <!--导入mybatis-spring桥梁包-->
        <!--导入Alibaba druid数据源依赖包-->

        <!--导入事务支持包-->
        <!--导入JDBC支持包-->

        <!--导入SpringMVC依赖包-->
        <!--导入文件上传依赖包-->
        <!--导入jstl标签库-->


        <!--导入mysql驱动-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.4</version>
        </dependency>
        <!--导入mybatis依赖包-->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
        <!--导入log4j依赖包-->
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!--导入Spring依赖包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <!--mybatis-spring桥梁包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!--导入Alibaba druid数据源依赖包-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.0</version>
        </dependency>

        <!--导入事务支持包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <!--导入JDBC支持包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc-->
        <!--导入SpringMVC依赖包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

        <!--导入文件上传依赖包-->
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

        <!--导入jstl标签库-->
        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

2、添加SpringMVC配置文件

在这里插入图片描述

3、web.xml添加配置

    <!--配置监听器-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--读取Spring配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:application-context.xml</param-value>
    </context-param>

拷贝之前的

    <!--配置中央控制:名字,DispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--读取SpringMVC配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--启动时自动载入-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--Servlet映射的url-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--中文乱码问题-->
    <!--配置 Spring MVC 字符编码过滤器-->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <!-- 设置编码格式 -->
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4、准备增删改查方法

UserService.java

public interface UserService {
    //查询用户记录数
    public int count();

    //查询用户列表
    public List<User> getUserList();
    //根据用户uid获取用户对象
    public User getUserByUid(Integer uid);
    //验证用户登录:用户和密码
    public User getLoginUser(String uname,String upwd);
    //添加用户
    public int addUser(User user);
    //修改用户
    public int modifyUser(User user);
    //删除指定id的用户
    public int deleteUserByUid(Integer uid);
}

UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService{
    @Resource
    UserMapper userMapper;
    @Override
    public int count() {
        //调用数据访问层DAO查询用户记录数的方法
        return userMapper.count();
    }

    @Override
    public List<User> getUserList() {
        return userMapper.getUserList();
    }

    @Override
    public User getUserByUid(Integer uid) {
        return userMapper.getUserByUid(uid);
    }

    @Override
    public User getLoginUser(String uname, String upwd) {
        return userMapper.getLoginUser(uname, upwd);
    }

    @Override
    public int addUser(User user) {
        return userMapper.addUser(user);
    }

    @Override
    public int modifyUser(User user) {
        return userMapper.modifyUser(user);
    }

    @Override
    public int deleteUserByUid(Integer uid) {
        return userMapper.deleteUserByUid(uid);
    }
}

5、登录

UserController.java

@Controller
@RequestMapping("/user")
public class UserController {//处理用户相关的请求
    @Resource
    UserService userService;

    //登录
    @RequestMapping("/login")
    public String login(User user,Model model){
        //调用业务逻辑层根据用户名和密码查询用户是否存在,返回user对象,
        // 如果不为空,可以登录否则,重新登录
        user=userService.getLoginUser(user.getUname(),user.getUpwd());
        if (user!=null){
            model.addAttribute("user",user);
            return "loginsuccess";
        }else {
            return "redirect:index";
        }
    }
}
<form action="user/login">
        用户名:<input type="text" name="uname"/>
        密码:<input type="password" name="upwd"/>
        <input type="submit" value="登录"/>
</form>

在这里插入图片描述
在这里插入图片描述

6、处理查询所有用户列表的请求

    //处理查询所有用户列表的请求
    @RequestMapping("/getUserList")
    public String getUserList(Model model){
        //调用业务逻辑层获取所有用户列表的方法
        List<User> userList=userService.getUserList();
        //把查询结果(用户列表)保存到model对象中,返回给页面
        model.addAttribute("userList", userList);
        return "userlist";
    }
        <!--导入jstl标签库-->
        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
用户列表:
<ul>
    <c:forEach items="${userList}" var="user">
        <li>用户名:${user.uname};密码:${user.upwd}
            <a href="${pageContext.request.contextPath}/user/toModifyUser?uid=${user.uid}">修改</a>
            <a href="${pageContext.request.contextPath}/user/deleteUser?uid=${user.uid}">删除</a>
        </li>
    </c:forEach>
</ul>

7、打开修改用户信息的页面

    //打开修改用户信息的页面
    @RequestMapping("/toModifyUser")
    public String toModifyUser(String uid,Model model){
        Integer uid0=null;
        if (uid!=null && !"".equals(uid)){
            uid0=Integer.parseInt(uid);
        }
        //调用业务逻辑层根据id查用户
        User user=userService.getUserByUid(uid0);
        //把用户保存到model对象中,返回给修改页面
        model.addAttribute("user", user);
        return "modifyuser";
    }  
    //处理修改信息操作的请求
    @RequestMapping("/modifyUser")
    public String modifyUser(User user){
        //调用业务逻辑层修改用户的方法
        int result=userService.modifyUser(user);
        //根据结果判断,如果修改成功,显示用户列表
        if (result>0){
            return "redirect:getUserList";
        }else {
            return "modifyuser";
        }
    }

modifyuser.jsp

<form action="${pageContext.request.contextPath}/user/modifyUser">
    <input type="hidden" name="uid" value="${user.uid}"/>
    用户名:<input type="text" name="uname" value="${user.uname}"/>
    密码:<input type="password" name="upwd" value="${user.upwd}"/>
    <input type="submit" value="提交"/>
</form>

在这里插入图片描述
在这里插入图片描述

8、处理删除用户的请求

    //处理删除用户的请求
    @RequestMapping("/deleteUser")
    public String deleteUser(String uid){
        //调用业务逻辑层根据id删除用户的方法
        int result=userService.deleteUserByUid(Integer.valueOf(uid));
        //根据结果判断,如果删除成功,显示用户列表
        if (result>0){
            return "redirect:getUserList";
        }else {
            return "modifyuser";
        }
    }

在这里插入图片描述

9、处理添加用户的请求

    //处理添加用户的请求
    @RequestMapping("/register")
    public String register(User user){
        //调用业务逻辑层添加用户的方法
        int result=userService.modifyUser(user);
        //根据结果判断,如果修改成功,显示用户列表
        if (result>0){
            return "redirect:getUserList";
        }else {
            return "modifyuser";
        }
    }

register.jsp

<form action="user/register">
    用户名:<input type="text" name="uname"/>
    密码:<input type="password" name="upwd"/>
    <input type="submit" value="注册"/>
</form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值