ssm后端基本结构

ssm基本结构图示

ssm——springboot、springMVC、mybaits
首先创建一个基本的springboot项目:
在这里插入图片描述

编辑pom.xml

导入mybaits依赖

 <dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>2.1.4</version>
 </dependency>

编辑application.yml

例如:

server:
  port: 8888

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/shopping?useSSL=false&useUnicode=true&characterEncoding=utf8
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456

编辑启动类BootdemoApplication

package com.neu.tech.bootdemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages={"com.neu.tech.bootdemo.mapper"})
public class BootdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootdemoApplication.class, args);
    }

}

MapperScan是扫描器,注意加上这一句不然会报错

编辑controller

package com.neu.tech.bootdemo.controller;
import com.neu.tech.bootdemo.entity.Product;
import com.neu.tech.bootdemo.mapper.ProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
//作用是让类里面全都返回json
@CrossOrigin
public class TestController {
    @Autowired
    private ProductMapper productMapper;

    @GetMapping("/hello")
    public String hello(){
        return "hello root";
    }

    @GetMapping("/listProduct")
    public List<Product> listProduct(){
        return productMapper.listProduct();
    }
}

其中@RestController作用是让类里面全都返回json格式
@CrossOrigin作用是解决跨域问题

编辑实体类Product

package com.neu.tech.bootdemo.entity;
import java.math.BigDecimal;
import java.util.Date;
public class Product {
    private Integer id;
    private Integer categoryId;
    private String name;
    private String subtitle;
    private String mainImage;
    private String subImages;
    private String detail;
    private BigDecimal price;
    private Integer stock;
    private Integer status;
    private Date createTime;
    private Date updateTime;

    public Integer getId() {
        return id;
    }

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

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSubtitle() {
        return subtitle;
    }

    public void setSubtitle(String subtitle) {
        this.subtitle = subtitle;
    }

    public String getMainImage() {
        return mainImage;
    }

    public void setMainImage(String mainImage) {
        this.mainImage = mainImage;
    }

    public String getSubImages() {
        return subImages;
    }

    public void setSubImages(String subImages) {
        this.subImages = subImages;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}

其中getter和setter方法没有用lombok生成。

编辑ProductMapper

注意文件位置需要与resources中的一致,因为打包成jar包的时候事实上是两者合在一起的。

package com.neu.tech.bootdemo.mapper;
import com.neu.tech.bootdemo.entity.Product;
import java.util.List;

public interface ProductMapper {
    List<Product> listProduct();
}

这里的listProduct与xml文件中的select语句中的id一致。

编辑ProductMapper.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.neu.tech.bootdemo.mapper.ProductMapper">

    <resultMap id="product" type="com.neu.tech.bootdemo.entity.Product">
        <id property="id" column="id"></id>
        <result property="categoryId" column="category_id"></result>
        <result property="name" column="name"></result>
        <result property="subtitle" column="subtitle"></result>
        <result property="mainImage" column="main_image"></result>
        <result property="subImages" column="sub_images"></result>
        <result property="detail" column="detail"></result>
        <result property="price" column="price"></result>
        <result property="stock" column="stock"></result>
        <result property="status" column="status"></result>
        <result property="createTime" column="create_time"></result>
        <result property="updateTime" column="update_time"></result>
    </resultMap>

    <select id="listProduct" resultMap="product">
        select * from pmt_product limit 0,10
    </select>
</mapper>

其中mapper中namespace与java类mapper位置一致。
resultMap中的id是映射名称可以自取,namespace是实体类位置。

select语句中,id为实体类中的方法名,resultMap对应映射名称

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM(Spring + Spring MVC + MyBatis)是一种常用的Java后端开发框架组合,下面是使用SSM框架编写后端控制器的步骤: 1. 首先,确保你已经配置好了SSM框架的环境,包括Spring、Spring MVC和MyBatis的配置文件。 2. 创建一个Java类,命名为`ExampleController`(或其他名称),并添加`@Controller`注解,标识该类为控制器: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class ExampleController { // 控制器方法 } ``` 3. 在控制器类中定义一个处理请求的方法,并使用`@RequestMapping`注解指定请求路径和请求方法: ```java @RequestMapping(value = "/api/example", method = RequestMethod.POST) public String exampleController() { // 处理业务逻辑 // ... // 返回视图名称 return "exampleView"; } ``` 在这个示例中,我们使用`@RequestMapping`注解将`exampleController`方法与路径为`/api/example`的POST请求绑定。在方法中,你可以编写任何所需的业务逻辑,并返回对应的视图名称。 4. 配置Spring MVC的DispatcherServlet,在web.xml文件中添加以下配置: ```xml <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 这里通过配置DispatcherServlet来处理所有的请求,并将请求分发到相应的控制器。 5. 创建对应的视图文件。在`/WEB-INF/`目录下创建一个名为`exampleView.jsp`的JSP文件,用于展示控制器处理后的数据。 以上就是使用SSM框架编写后端控制器的基本步骤。当然,实际的控制器可能会涉及更多的业务逻辑和处理,具体的实现方式会根据你的需求和项目结构的不同而有所变化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值