SpringMVC+MyBatis+MAVEN 增删改查

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38390092/article/details/79620675

大纲:

这里写图片描述

一、Maven引入需要的JAR包(配置pom.xml文件(导包))

进入网站,输入你要用的包名称,复制源代码,粘贴即可导入↓

http://mvnrepository.com/artifact/mysql/mysql-connector-java/6.0.6

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>spring-mybatis-study</groupId>
  <artifactId>com.study</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>com.study Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!--Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.9.RELEASE</version>
  </dependency>
    <!-- spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.3.0</version>
    </dependency>
    <!-- mysql 连接-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.39</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>com.study</finalName>
  </build>
</project>

二、建立SpringContext配置文件

<?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:util="http://www.springframework.org/schema/util"
       xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

    <mvc:annotation-driven />
    <!-- 扫描controller (控制)-->
    <context:component-scan base-package="org.tarena.controller" />
    <!-- 扫描viewResolver (视图)-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"></property><!-- 文件路径(必配) -->
        <property name="suffix" value=".jsp"></property><!-- 指定该目录下所有jsp文件 -->
    </bean>


</beans>

三、配置mybatis-config文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 和spring整合后 environments将废除 -->
    <environments default="environment">
        <environment id="environment">
            <!-- 使用JDBC事务管理,事务控制由mybatis -->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接池,由mybatis -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>  //修改为你的数据库信息
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/active_log?user=root&amp;password=123"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--加载SQL定义文件 -->
    <mappers>
        <mapper resource="sqlmap/EmpMapper.xml"/>
    </mappers>

</configuration>

四、写好Model文件:

package org.tarena.model;

/**
 * Created by CloudZou on 3/16/2018.
 */

import java.math.BigInteger;
import java.util.Date;

public class Emp {
    private String  id;
    private String user_id;
    private String relatable_type;
    private String relatable_id;
    private String description;
    private  double lon;
    private  double lat;
    private Date create_time;
    private String create_user_id;
    private BigInteger update_time;
    private  String update_user_id;
    private  Boolean deleted;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUser_id() {
        return user_id;
    }

    public void setUser_id(String user_id) {
        this.user_id = user_id;
    }

    public String getRelatable_type() {
        return relatable_type;
    }

    public void setRelatable_type(String relatable_type) {
        this.relatable_type = relatable_type;
    }

    public String getRelatable_id() {
        return relatable_id;
    }

    public void setRelatable_id(String relatable_id) {
        this.relatable_id = relatable_id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public double getLon() {
        return lon;
    }

    public void setLon(double lon) {
        this.lon = lon;
    }

    public double getLat() {
        return lat;
    }

    public void setLat(double lat) {
        this.lat = lat;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public String getCreate_user_id() {
        return create_user_id;
    }

    public void setCreate_user_id(String create_user_id) {
        this.create_user_id = create_user_id;
    }

    public BigInteger getUpdate_time() {
        return update_time;
    }

    public void setUpdate_time(BigInteger update_time) {
        this.update_time = update_time;
    }

    public String getUpdate_user_id() {
        return update_user_id;
    }

    public void setUpdate_user_id(String update_user_id) {
        this.update_user_id = update_user_id;
    }

    public Boolean getDeleted() {
        return deleted;
    }

    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }
}

五、写好 MyBatisUtil文件方便Mybatis使用

package org.tarena;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

/**
 * Created by CloudZou on 3/16/2018.
 */

public class MyBatisUtil {

    public static SqlSession getSqlSession(){
        SqlSessionFactoryBuilder builder = new
                SqlSessionFactoryBuilder();
        String conf="mybatis-config.xml";
        InputStream confStream = MyBatisUtil.class.getClassLoader().getResourceAsStream(conf);
        SqlSessionFactory factory=builder.build(confStream);
        SqlSession session = factory.openSession();

        return session;

    }

}

六、写好JSP文件

<%--
  Created by IntelliJ IDEA.
  User: TTOP
  Date: 2018/3/19
  Time: 1:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body style=" background-color: aquamarine">
<form action="list.do"  >
  <input type="submit" value="查看">
</form>
<form action="delete.do" >
  <input type="submit" value="删除">
</form>
<form action="update.do" >
  <input type="submit" value="更新">
</form>
<form action="add.do" >
  <input type="submit" value="增加">
</form>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: TTOP
  Date: 2018/3/19
  Time: 1:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>增添页面</title>
</head>
<body style="background-color: aquamarine ">
<form action="add.do" method="post">
    id:<input type="text" name="id"> <br/>
    uer_id:<input type="text" name="user_id"> <br/>
    relatable_type:<input type="text" name="relatable_type"> <br/>
    relatable_id:<input type="text" name="relatable_id"> <br/>
    description:<input type="text" name="description"> <br/>


    create_user_id:<input type="text" name="create_user_id"> <br/>
    update_time:<input type="text" name="update_time"> <br/>
    update_user_id:<input type="text" name="update_user_id"> <br/>
    deleted:<input type="text" name="deleted"> <br/>


    <input type="submit" value="确定添加">
</form>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: TTOP
  Date: 2018/3/19
  Time: 1:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>删除页面</title>
</head>
<body style="background-color: aquamarine">
<form action="delete.do" method="post">
  删除Id:<input type="text" name="delete_id"> <br/>
  <input type="submit" value="确定删除">
</form>
</body>
</html>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
    <title>查看表</title>
</head>
<body style="background-color: aquamarine">
<table border="1" cellspacing="0" cellpadding="10" margin-left: auto;
       margin-right: auto;  >
    <tr>
        <th>ID</th>
        <th>User_id</th>
        <th>create_time</th>
        <th>description</th>

    </tr>

    <c:forEach items="${list}" var="emp">
        <tr>
            <th>${emp.id}</th>
            <th>${emp.user_id}</th>
            <th>${emp.create_time}</th>
            <th>${emp.description}</th>

        </tr>
    </c:forEach>
</table>

</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: TTOP
  Date: 2018/3/19
  Time: 10:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body style=" background-color: aquamarine">
<form action="update.do" method="post">
  需要更新的Id:<input type="text" name="delete_id"> <br/>
  更新描述内容:<input type="text" name="description"> <br/>
  <input type="submit" value="更新">
</body>
</html>

七、配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--读取Spring配置-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:SpringContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <!-- 中文乱码问题 -->
    <filter>
        <filter-name>myfilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!-- spring - web 提供 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>myfilter</filter-name>
        <url-pattern>*.do</url-pattern>
        <!-- 也可用<url-pattern>springmvc</url-pattern> -->
    </filter-mapping>



    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

八、写个测试,是否能成功操作数据库

import java.io.IOException;

import java.math.BigInteger;

import java.text.ParseException;
import java.text.SimpleDateFormat;

import java.util.Date;
import java.util.List;
import java.util.Map;


import org.apache.ibatis.session.SqlSession;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.tarena.MyBatisUtil;
import org.tarena.model.Emp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class TestCost {

    public static void main(String[] args) throws IOException, ParseException {

        SqlSession session = MyBatisUtil.getSqlSession();
        Date day = new Date();
        BigInteger bigInteger = new BigInteger("32");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        String nowTime = df.format(day);
        Date time = df.parse(nowTime);
        Emp emp = new Emp();
        emp.setId("6");
        emp.setUser_id("1");
        emp.setRelatable_type("1");
        emp.setRelatable_id("5");
        emp.setDescription("456456");
        emp.setLon(13);
        emp.setLat(56.0);
        emp.setCreate_user_id("23");
        emp.setCreate_time(time);
        emp.setUpdate_time( bigInteger);
        emp.setUpdate_user_id("156");
        emp.setDeleted(true);
        session.insert("add", emp);
        session.commit();


    }

}

九、写控制(可以分开写一个JSP 一个controler 也可以 一对多写)


package org.tarena.controller;

import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.ibatis.jdbc.Null;
import org.apache.ibatis.reflection.SystemMetaObject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.tarena.MyBatisUtil;
import org.tarena.model.Emp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@Controller
public class ListController {
    SqlSession session = MyBatisUtil.getSqlSession();

    @RequestMapping("first.do")
    public String toFirst() {
        return "first";

    }

    @RequestMapping("list.do")
    public String execute(ModelMap model) {
        List<Emp> list = session.selectList("findAll");
        model.addAttribute("list", list);
        return "list";
    }

    @RequestMapping("delete.do")
    public String delete(HttpServletRequest request,
                         Model model) {
        String id = request.getParameter("delete_id");
        if (id != null) {
            session.delete("delete", id);
            session.commit();
            List<Emp> list = session.selectList("findAll");
            model.addAttribute("list", list);
            return "list";
        }
        return "delete";
    }

    @RequestMapping("update.do")
    public String update(HttpServletRequest request,
                         Model model) {
        String id = request.getParameter("delete_id");
        String description = request.getParameter("description");
        if (id != null) {
            Emp emp = new Emp();
            emp.setId(id);
            emp.setDescription(description);
            session.update("update", emp);
            List<Emp> list = session.selectList("findAll");
            model.addAttribute("list", list);
            return "list";
        }
        return "update";
    }

    @RequestMapping("add.do")
    public String add(HttpServletRequest request,
                      Model model) throws IOException, ParseException {
        String id = request.getParameter("id");
        String user_id = request.getParameter("user_id");
        String relatable_type = request.getParameter("relatable_type");
        String relatable_id = request.getParameter("relatable_id");
        String description = request.getParameter("description");

        String create_user_id = request.getParameter("create_user_id");

        String update_time = request.getParameter("update_time");
        String update_user_id = request.getParameter("update_user_id");
        String deleted = request.getParameter("deleted");
        Boolean b = Boolean.getBoolean(deleted);
        /*double LON = Double.parseDouble(lon);
        double LAT = Double.parseDouble(lat);
        BigInteger bd = new BigInteger(update_time);*/

        Date day = new Date();
        BigInteger bigInteger = new BigInteger("32");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        String nowTime = df.format(day);
        Date time = df.parse(nowTime);
if(id!=null) {
    Emp emp = new Emp();
    emp.setId(id);
    emp.setUser_id(user_id);
    emp.setRelatable_type(relatable_type);
    emp.setRelatable_id(relatable_id);
    emp.setDescription(description);
    emp.setLon(13);
    emp.setLat(56.0);
    emp.setCreate_user_id(create_user_id);
    emp.setCreate_time(time);
    emp.setUpdate_time(bigInteger);
    emp.setUpdate_user_id(update_user_id);
    emp.setDeleted(b);
    session.insert("add", emp);
    session.commit();
    List<Emp> list = session.selectList("findAll");
    model.addAttribute("list", list);
    return "list";
}return "add";
    }
}

思路:

## 思路:(查找)通过Mybatis获取数据,将其传入SpringMVC(controller),显示在JSP页面完成操作
         (更新、删除、增加)通过JSP页面获取值,通过SpringMVC(controller)、Mybatis写入数据库
         在以(查找)方式显示JSP页面,操作完成。 ##

猜你喜欢

转载自blog.csdn.net/qq_38390092/article/details/79620675