IDEA初始化SSM项目(从零开始)

一、开发环境
项目管理: maven-3.6.0   
后端服务器: tomcat-8.5.5
数据库: mysql-8.0.27
二、项目搭建
1.新建工程

点击File->New->Project开始新建

选择Maven骨架创建

给项目取个名字,并选择项目的存放路径,然后next

接下来配置自己下载的maven,如果maven中没有repository文件夹就新建一个,然后Finish

新建好的项目目录结构如下

完善项目结构

接下来完善一下项目目录结构,右键main->New->Directory

依次选择java、resources

依次创建controller层、service层、dao层、pojo层

2.配置tomcat服务

点击右上角configuration配置tomcat

点击+,选择tomcat

点击右下角Fix

再点击第二个,Apply一下,然后OK

配置好后可以看到自己的tomcat,接下来可以点击运行

启动后会打开如下网页

3.配置pom.xml文件

在pom.xml文件中引入本项目所需的相关依赖

<dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
      <!--引入springMVC包-->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.5.RELEASE</version>
      </dependency>
      <!--引入spring框架对jdbc包-->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.5.RELEASE</version>
      </dependency>
      <!--引入数据库驱动-->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.29</version>
      </dependency>
      <!--引入mybatis与spring连接包-->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>3.0.0</version>
      </dependency>
      <!--mybatis框架-->
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
      </dependency>
      <!--引入数据库连接池包-->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.3</version>
      </dependency>
      <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
      </dependency>
      <!--@ResponseBody注解标识该方法的返回值直接写回到HTTP响应体中去(而不会被被放置到Model 中或被解释为一个视图名),因此这里需要引入jar包-->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.6</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.9.6</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.6</version>
      </dependency>
  </dependencies>
4.新建jdbc.properties文件

在resources下新建jdbc.properties文件,配置mysql参数

# 数据库驱动
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
# mysql用户,一般都是root
jdbc.username=root
# mysql登录密码,自定义
jdbc.password=111111
# mysql数据库,自定义
jdbc.url=jdbc:mysql://localhost:3306/dataSSM?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

5.创建相关xml文件
spring-context.xml  Spring框架的核心配置文件,用于配置Spring容器,包括Bean的定义、依赖注入等
spring-mvc.xml  Spring MVC框架的配置文件,用于配置MVC模式的各个组件,如视图解析器、控制器、拦截器等
spring-mybatis.xml  这个文件主要用于整合Spring和MyBatis,包括数据源的配置、事务管理器的配置等
mybatis.xml  这是MyBatis框架的配置文件,用于配置MyBatis的各种属性,如别名、映射文件、插件等
mapper文件夹  MyBatis框架中的一个目录,用于存放映射文件
mapper/demoMapper.xml   是一个映射文件,用于定义SQL语句和结果映射规则。在这个文件中,你可以编写各种SQL语句,如查询、插入、更新、删除等,并将它们与Java对象进行映射。通过这个文件,你可以在Java代码中调用这些SQL语句,实现对数据库的操作

通过resources->New->XML Configuration File->Spring Config创建spring-context.xml、spring-mvc.xml、spring-mybatis.xml等spring文件

接下来需要创建mybatis的配置文件mybatis.xml和映射文件demoMapper.xml,虽然都是xml文件,但是里面配置不同

在新建这两个文件前需要先创建好对应的模板(方便以后使用),按住快捷键Ctrl+Alt+S打开setting,搜索templat,选择File and Code Templates,新增模板,设置命名、文件类型、模板内容等

mybatis.xml文件

mybatis的模板内容如下:

<!--mybatis.xml-->
<?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">
​
<!--配置mybatis-->
<configuration>
    <settings>
        <!--开启mybatis懒加载功能-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--开启mybatis的基本日志功能,将执行的sql语句打印在控制中-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>
DemoMapper.xml文件

mapper的设置方法和上面一样,模板内容为:

<!--DemoMapper.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>

这里的namespace后面会爆红,即使设置了命名也会,但是不影响使用

接下来新建mybatis.xml文件和demoMapper.xml文件了

6.配置spring-mybatis.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:aop="http://www.springframework.org/schema/aop"
       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 http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    ">
    <!--配置数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--配置mybatis对应当前项目结构的管理-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--将mybatis的配置引入-->
        <property name="configLocation" value="classpath:mybatis.xml"/>
        <!--将当前项目的数据源引入-->
        <property name="dataSource" ref="dataSource"/>
        <!--将当前项目的实体类引入到mybatis中-->
        <property name="typeAliasesPackage" value="com.sy.pojo"/>
        <!--将项目中的mybatis的映射文件引入当前mybatis中-->
        <property name="mapperLocations">
            <list>
                <value>classpath*:mapper/*.xml</value>
            </list>
        </property>
    </bean>
    <!--开启使用mybatis的模板工具-->
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>
</beans>
7.配置spring-mvc.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:aop="http://www.springframework.org/schema/aop"
       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 http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    ">
    <!--开启springMVC对java文件的包扫描-->
    <context:component-scan base-package="com.demo.*"/>
    <!--开启springMVC对前端资源的扫描和解析-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!--释放前端各类文件资源-->
    <mvc:default-servlet-handler/>
    <!--开启对springmvc当中请求注解的功能-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/plain;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
</beans>
8.配置spring-context.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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    ">
    <!--spring引入外部的配置文件-->
    <context:property-placeholder location="classpath*:jdbc.properties"/>
    <!--通过配置将是spring框架和mybatis框架进行整合-->
    <import resource="spring-mybatis.xml"/>
​
</beans>
9.配置web.xml文件

(在webapp->WEB-INF下)

<?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">
  <!--将spring框架整合到当前的web项目中-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring-context.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!--添加web项目对springMVC的支持-->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--在当前的servlet初始化过程中,需要添加一些基础参数-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <!--将web项目的所有请求,都交给springMVC-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>
10.启动tomcat测试配置

最后再次启动项目,如果弹出网页则表示SSM项目配置没有问题

三、样例测试
1.创建user表

在mysql数据库中随便创建一个用户user表

2.创建User对象

User.java文件

package com.demo.pojo;
​
/**
 * @ClassName User
 * @Description
 * @Author Chen
 * @Date 2024/4/14 0:33
 * @Version 1.0
 **/
public class User {
    private int id;
    private String username;
    private String password;
​
    public int getId() {
        return id;
    }
​
    public void setId(int id) {
        this.id = id;
    }
​
    public String getUsername() {
        return username;
    }
​
    public void setUsername(String username) {
        this.username = username;
    }
​
    public String getPassword() {
        return password;
    }
​
    public void setPassword(String password) {
        this.password = password;
    }
}
3.完善demoMapper.xml

demoMapper.xml文件中可以写mysql的SQL语句,这里通过user的username来查询用户

<?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="DemoMapper">
    <select id="queryById" parameterType="com.demo.pojo.User" resultType="com.demo.pojo.User">
        select * from user where username=#{username};
    </select>
</mapper>
4.创建UserDao层

UserDao.java文件

package com.demo.dao;
​
import com.demo.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
​
import java.util.List;
​
/**
 * @ClassName DemoDao
 * @Description
 * @Author Chen
 * @Date 2024/4/14 0:26
 * @Version 1.0
 **/
@Repository
public class DemoDao {
    /*从spring容器中拿取类对象*/
    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;
​
    // 通过username查询用户
    List<User> queryById(User user){
        return sqlSessionTemplate.selectList("DemoMapper.queryById",user);
    }
}
5.创建Service抽象类

UserService.java

package com.demo.service;
​
import com.demo.pojo.User;
​
import java.util.List;
​
public interface DemoService {
    List<User> queryById(User user);
}
实现UserService.java抽象类

UserServiceImpl.java

package com.demo.service.impl;
​
import com.demo.dao.DemoDao;
import com.demo.pojo.User;
import com.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
​
import java.util.List;
​
/**
 * @ClassName DemoServiceImpl
 * @Description
 * @Author Chen
 * @Date 2024/4/14 0:49
 * @Version 1.0
 **/
@Service
public class DemoServiceImpl implements DemoService {
​
    @Autowired
    private DemoDao demoDao;
​
    @Override
    public List<User> queryById(User user) {
        return demoDao.queryById(user);
    }
}
6.创建Controller类

DemoController.java

package com.demo.controller;
​
import com.demo.pojo.User;
import com.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
​
import java.util.List;
​
/**
 * @ClassName DemoController
 * @Description
 * @Author Chen
 * @Date 2024/4/13 0:49
 * @Version 1.0
 **/
@Controller
public class DemoController {
    @Autowired
    private DemoService demoService;
​
    @RequestMapping("/demo")    // 请求路由
    public ModelAndView getUserBy(ModelAndView modelAndView){
        User user = new User();
        // 设置username,以便后面查询
        user.setUsername("admin");
        // 通过username查询用户
        List<User> users = demoService.queryById(user);
        // 将查寻到的用户放进去,传入前端
        modelAndView.addObject("users",users);
        // 设置跳转页面名称
        modelAndView.setViewName("demo");
        return modelAndView;
    }
}
7.编写demo.jsp

在webapp下创建一个view文件夹,再在view下创建一个demo.jxp文件,展示查询到的user数据

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
    /*获取项目的根路径*/
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    /*basePath就是得到的跟路径类似于:http://localhost:8081/pinduoduo/*/
%>
<html>
<body>
<c:forEach items="${users}" var="user">
    <h2>Hello World!</h2>
    <h2>${user.username}:${user.password}</h2>
</c:forEach>
</body>
</html>
8.启动项目

启动项目,访问路径便可得到user数据

9.整个项目结构

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值