SSM创建配置测试超级无敌详细版本

1.创建

image

2.配置tomcat

3.创建webapp

step01,war包

image

step02

image

image

创建web.xml

image

<?xml version="1.0" encoding="UTF-8"?>
<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">
</web-app>

4.构建SpringMVC

导入jar包

<!--springMVC-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.23</version>
</dependency>

<!--servlet-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

web.xml配置DispacheServlet,核心拦截器

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!--配置DispacheServlet,核心拦截器-->
    <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:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

springmvc.xml

image

<?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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-4.0.xsd
                           http://www.springframework.org/schema/util
                           http://www.springframework.org/schema/util/spring-util-4.0.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
                           ">
    <!--扫描Controller所在包,但是注意包下的类必须有@Controller或者@RestController-->
    <context:component-scan base-package="com.einmeer.controller"></context:component-scan>
</beans>

5.SpringIOC

创建配置文件applicationcontext.xml

image

<?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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-4.0.xsd
                           http://www.springframework.org/schema/util
                           http://www.springframework.org/schema/util/spring-util-4.0.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
                           ">

</beans>

配置监听器,该监听器的作用是在服务器启动的时候读ioc配置文件

继续在web.xml中添加

<!--为监听器配置参数,目的是为了告诉监听器,要读的文件在哪-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationcontext.xml</param-value>
</context-param>
<!--配置监听器读applicationcontext.xml-->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

6.MyBatis

导入jar包

<!--MyBatis-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>

<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

<!--MyBatis Spring-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
</dependency>

<!--orm关系映射-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>5.3.23</version>
</dependency>

<!--Druid连接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.8</version>
</dependency>

在MyConfig中创建3个bean,加入IOC

applicationcontext.xml

image

<!--扫描配置类所在的包-->
<context:component-scan base-package="com.einmeer.config"></context:component-scan>

MyConfig

package com.einmeer.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

/**
* @author 芊嵛
* @date 2024/3/4
*/
@Configuration
public class MyConfig {

    /**
* 配置连接池
* @return
*/
    @Bean
    DataSource getDataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://192.168.21.130:3306/test?useUnicode=true&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("2459689935");;
        dataSource.setMinIdle(8);
        dataSource.setMaxActive(20);
        return dataSource;
    }

    @Bean
    SqlSessionFactoryBean getSqlSessionFactory(){
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(getDataSource());
        bean.setTypeAliasesPackage("com.einmeer.entity");
        return bean;
    }

    @Bean
    MapperScannerConfigurer getMapperScanner(){
        MapperScannerConfigurer bean = new MapperScannerConfigurer();
        bean.setBasePackage("com.einmeer.mapper");
        return bean;
    }
}

image

mapper.xml固定的头

<?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="换成上面接口的路径">

</mapper>

7.简化entity

下载lombok插件

image

导入jar

<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
    <scope>provided</scope>
</dependency>

8.截至到目前的配置整合

image

8.1MyConfig.java

package com.einmeer.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

/**
 * @author 芊嵛
 * @date 2024/3/4
 */
@Configuration
public class MyConfig {

    /**
     * 配置连接池
     *
     * @return
     */
    @Bean
    DataSource getDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://192.168.21.130:3306/test?useUnicode=true&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("2459689935");
        ;
        dataSource.setMinIdle(8);
        dataSource.setMaxActive(20);
        return dataSource;
    }

    @Bean
    SqlSessionFactoryBean getSqlSessionFactory() {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(getDataSource());
        // 包别名,不写的话,mapper中返回值类型要写全
        bean.setTypeAliasesPackage("com.einmeer.entity");
        return bean;
    }

    @Bean
    MapperScannerConfigurer getMapperScanner() {
        MapperScannerConfigurer bean = new MapperScannerConfigurer();
        // mapper别名
        bean.setBasePackage("com.einmeer.mapper");
        return bean;
    }
}

8.2applicationcontext.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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-4.0.xsd
                           http://www.springframework.org/schema/util
                           http://www.springframework.org/schema/util/spring-util-4.0.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
                           ">

    <!--扫描配置类所在的包-->
    <context:component-scan base-package="com.einmeer.config"></context:component-scan>
</beans>

8.3springmvc.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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-4.0.xsd
                           http://www.springframework.org/schema/util
                           http://www.springframework.org/schema/util/spring-util-4.0.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
                           ">
    <!--扫描Controller所在包,但是注意包下的类必须有@Controller或者@RestController-->
    <context:component-scan base-package="com.einmeer.controller"></context:component-scan>
</beans>

8.4web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!--配置DispacheServlet,核心拦截器-->
    <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:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--为监听器配置参数,目的是为了告诉监听器,要读的文件在哪-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationcontext.xml</param-value>
    </context-param>
    <!--配置监听器读applicationcontext.xml-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

</web-app>

9.测试

image

9.1Business.java

package com.einmeer.entity;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * @author 芊嵛
 * @date 2024/3/4
 */
@Data   // get/set方法
@AllArgsConstructor // 有参(全参)
@NoArgsConstructor  // 无参
public class Business {
    private Integer businessId;
    private String businessName;
    private String businessAddress;
    private String businessExplain;
    private String businessImg;
    private Integer orderTypeId;
    private BigDecimal startPrice;
    private BigDecimal deliveryPrice;
    private String remarks;

}

9.2BusinessMapper.java

package com.einmeer.mapper;

import com.einmeer.entity.Business;

import java.util.List;

/**
 * @author 芊嵛
 * @date 2024/3/4
 */
public interface BusinessMapper {
    // 查询所有信息
    List<Business> list();
}

9.3BusinessMapper.xml

<?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.einmeer.mapper.BusinessMapper">
    <!--id代表上面Business接口中的方法名字,必须完全一致;后面的是返回值类型,由于MyConfig文件中配置了因此不用写全路径,写名字就行,不如就得向上面那样从com开始-->
    <select id="list" resultType="Business">
        select businessId,
        businessName,
        businessAddress,
        businessExplain,
        businessImg,
        orderTypeId,
        startPrice,
        deliveryPrice,
        remarks
        from business;
    </select>
</mapper>

9.4BusinessController

package com.einmeer.controller;

import com.einmeer.entity.Business;
import com.einmeer.mapper.BusinessMapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 芊嵛
 * @date 2024/3/4
 */
//返回字符串
@RestController
// 多一层路径
@RequestMapping("/business")
public class BusinessController {
    // 自动new,只限一次
    @Resource
    BusinessMapper businessMapper;

    //    调用方法的路径
    @GetMapping("/list")
    String list() {
        System.out.println(businessMapper.list());
        return "index";
    }
}

image

10.输出到页面上

截至目前能打印到控制台,要想出入到页面上需要继续配置

导入jar,转换成JSON字符串

<!--fastjson-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.32</version>
</dependency>

springmvc.xml配置消息转换器与跨域

<!--配置消息转换器-->
<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
            <property name="supportedMediaTypes">
                <value>application/json;charset-utf-8</value>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

<!--配置跨域-->
<mvc:cors>
    <mvc:mapping path="/**" allowed-origins="*"/>
</mvc:cors>

BusinessController.java修改一下

package com.einmeer.controller;

import com.einmeer.entity.Business;
import com.einmeer.mapper.BusinessMapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 芊嵛
 * @date 2024/3/4
 */
//返回字符串
@RestController
// 多一层路径
@RequestMapping("/business")
public class BusinessController {
    // 自动new,只限一次
    @Resource
    BusinessMapper businessMapper;

    //    调用方法的路径
    @GetMapping("/list")
    List<Business> list() {
        return businessMapper.list();
    }
}

image

11.把sql语句输出到控制窗口

导包

<!--输出sql到控制窗口-->
<dependency>
    <groupId>org.duracloud</groupId>
    <artifactId>common</artifactId>
    <version>7.0.0</version>
</dependency>

12.一次性插入多条数据

<!--添加-->
<!--collection如果是数组array,要是集合list item自定义 以,分割-->
<insert id="businessAdd" parameterType="Business">
    INSERT INTO business ( businessName, businessAddress, businessExplain, businessImg, orderTypeId, startPrice,
    deliveryPrice, remarks )
    VALUES
    <foreach collection="list" item="abusiness" separator=",">
        (#{abusiness.businessName},
        #{abusiness.businessAddress},
        #{abusiness.businessExplain},
        #{abusiness.businessImg},
        #{abusiness.orderTypeId},
        #{abusiness.startPrice},
        #{abusiness.deliveryPrice},
        #{abusiness.remarks}
        )
    </foreach>;
</insert>
posted @ 2024-03-04 23:35  芊嵛  阅读(44)  评论(0编辑  收藏  举报