SpringMVC实现数据的增删改查

资源配置

1.引入pom.文件

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
      <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.3.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.3.5</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.3.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>5.3.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->


    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjtools</artifactId>
      <version>1.9.5</version>
    </dependency>

    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.0</version>
    </dependency>

    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>2.4.1</version>
      <scope>compile</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.1</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.6</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>5.3.5</version>
    </dependency>

    <!--Spring事物依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.3.5</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjtools</artifactId>
      <version>1.9.5</version>
    </dependency>

    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.5</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.9</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.1</version>
    </dependency>

2.配置web.xml文件

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--  防止乱码-->
  <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>

<!--  添加过滤器-->
  <filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

<!--  视图解析器-->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:SpringMVC.xml</param-value>
    </init-param>
   <param-name>contextConfigLocation</param-name>
      <!-- 此处使用 Spring 资源路径的方式进行指定,即 classpath:springmvc-servlet.xml -->
      <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <!--将DispatcherServlet的初始化时间提前到服务器启动时-->
  <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- 处理所有URL请求 -->
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

3.配置SpringMVC.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">


        <context:component-scan base-package="com.cqucc"></context:component-scan>
        <mvc:default-servlet-handler/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

        <mvc:view-controller path="/" view-name="welcome"></mvc:view-controller>
        <mvc:view-controller path="/users" view-name="user"></mvc:view-controller>
        <mvc:annotation-driven/>

</beans>

页面书写

1.过度界面

登入后需要先经过过度过度界面后,才能查看数据

<input type="button" value="常看员工信息" onclick="location='${pageContext.request.contextPath}/users'">

 

jsp页面的源码


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap-3.4.1-dist/css/bootstrap.css">
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-3.4.1-dist/js/bootstrap.js"></script>
</head>
<body>
    <h1>员工信息</h1>

    <div id="con">
        <table class="table table-striped" title="table">
            <tr>
                <td>员工编号</td>
                <td>员工姓名</td>
                <td>员工性别</td>
                <td>员工电话</td>
                <td>操作</td>
            </tr>
        </table>
        <input type="button" value="添加" title="test">
    </div>


    <!-- Button trigger modal -->
    <button type="button" title="titiladd" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
        添加
    </button>

    <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">

            <input type="text" name="userid">

            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">员工信息添加</h4>
                </div>
                <div class="modal-body">
                    <form class="form-horizontal">
                        <div class="form-group">
                            <label for="name" class="col-sm-2 control-label">员工姓名</label>
                            <div class="col-sm-10">
                                <input type="text" class="form-control" name="username" id="name" placeholder="Username">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="phont" class="col-sm-2 control-label">员工性别</label>
                            <div class="col-sm-10">
                                <input type="radio" name="usersex" value="男" title="male">男
                                <input type="radio" name="usersex" value="女" title="female">女

                            </div>
                        </div>
                        <div class="form-group">
                            <label for="phont" class="col-sm-2 control-label">员工电话</label>
                            <div class="col-sm-10">
                                <input type="text" class="form-control" name="userphont" id="phont" placeholder="userphont">
                            </div>
                        </div>

                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">退出</button>
                    <button type="button" class="btn btn-primary" title="save">确认</button>
                </div>
            </div>
        </div>
    </div>


</body>

<script>
    $(function () {
            $.ajax({
                type:"GET",
                url: "${pageContext.request.contextPath}/user",
                // data:"name=John&location=Boston",
                dataType:"json",
                success:function (json) {
                    console.log(json);
                    $(json).each(function (index,value) {
                        var op =$("<tr><td>"+value.userid+"</td>" +
                            "<td>"+value.username+"</td>" +
                            "<td>"+value.usersex+"</td>" +
                            "<td>"+value.userphont+"</td>" +
                            "<td><input type='button' value='修改' title='preupdate' class='btn btn-success'>" +
                            "<input type='button' value='删除' title='delete' class='btn btn-danger'></td></tr>");
                        $("[title='table']").append(op);
                    });
                }
            });
            $("#con").on('click','[title="preupdate"]',function () {
                var userid = $(this).parents("tr").find("td:first").html();
                $(this).attr("data-toggle","modal");
                $(this).attr("data-target","#myModal");
                $.ajax({
                    type:"GET",
                    url: "${pageContext.request.contextPath}/user/"+userid,

                    dataType:"json",
                    success:function (info) {
                        $("#name").val(info.username);
                        $("#phont").val(info.userphont);
                        // data-toggle="modal" data-target="#myModal"
                        if (info.usersex=="男"){
                            $("[title='male']").get(0).checked=true;
                        }else{
                            $("[title='female']").get(0).checked=true;
                        }
                        $("[name='userid']").val(info.userid);
                    }
                });
            });
            $("#con").on('click','[title="delete"]',function () {
                var userid = $(this).parents("tr").find("td:first").html();
                // alert(userid);
                $.ajax({
                    type:"POST",
                    url: "${pageContext.request.contextPath}/user/"+userid,
                    data:"_method=delete",
                    // dataType:"json",
                    success:function (info) {
                        // alert(info);
                        if (info=='success'){
                            // alert();
                            window.location.reload();
                        }
                    }
                });
            });

            $("[title='titleadd']").click(function () {
                $("[name='userid']").val('');
            });

            $("[title='save']").click(function () {
                var sex ="男";
                if ($("[title='female']").get(0).checked){
                    sex='女';
                }
                var user = $("[name='userid']").val();
                if(user==''){
                    $.ajax({
                        type:"POST",
                        url: "${pageContext.request.contextPath}/user/",
                        data:"username="+$("[name='username']").val()+
                            "&userphont="+$("[name='userphont']").val()+"&usersex="+sex,
                        // dataType:"json",
                        success:function (info) {
                            // alert(info);
                            if (info=='success'){
                                // alert();
                                window.location.reload();
                            }
                        }
                    });
                }else{
                    var op = "username="+$("[name='username']").val()+
                        "&userphont="+$("[name='userphont']").val()+
                        "&usersex="+sex+"&userid="+user+"&_method=PUT";
                    // alert("修改");
                    // alert(user);
                    $.ajax({
                        type:"POST",
                        url: "${pageContext.request.contextPath}/user/",
                        data:op,
                        // dataType:"json",
                        success:function (info) {
                            // alert(info);
                            if (info=='success'){
                                // alert();
                                window.location.reload();
                            }
                        }
                    });
                }

                // window.location.reload();
            })
        });
</script>
</html>

 控制类

@Controller
public class UserController {

    @Autowired
    @Qualifier("userDaoImpl")
    private UserDao userDao;


    @RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
    @ResponseBody
    public User selectUser(@PathVariable("id") Integer userid){
        User user = userDao.selectById(userid);
        System.out.println(user.getUsersex()+"\t"+user.getUsername());
        return user;
    }

    @GetMapping("/user")
    @ResponseBody
    public List<User> selectAll(){
        return userDao.selectAll();
    }

    @DeleteMapping("/user/{id}")
    @ResponseBody
    public String delete(@PathVariable("id") Integer userid){
        System.out.println("delete"+userid);
        userDao.delete(userid);
        return "success";
    }


    @PostMapping("/user")
    @ResponseBody
    public  String save(User user){
        System.out.println(user.getUsersex()+"\t"+user.getUserphont()+"\t"+user.getUserid());
        userDao.saveOrUpdate(user);
        return "success";
    }

    @PutMapping("/user")
    @ResponseBody
    public  String update(User user){
        System.out.println(user.getUsersex()+"\t"+user.getUserphont()+"\t"+user.getUserid()+"++++++++++++++");
        userDao.saveOrUpdate(user);
        return "success";
    }

}

实现界面 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值