您现在的位置是:首页 >技术杂谈 >idea创建第一个ssm项目【spring+springMVC+Mybatis整合】网站首页技术杂谈

idea创建第一个ssm项目【spring+springMVC+Mybatis整合】

小白达不刘 2024-06-17 11:28:13
简介idea创建第一个ssm项目【spring+springMVC+Mybatis整合】

 

目录

0.准备

1.开搞

1.1创建项目

1.2部署tomcat

2.搭建springmvc并整合mybatis

2.1pom.xml

1.4web.xml

1.5spring-mvc.xml

1.6 jdbc.properties

1.7完善代码

1.8springmvc测试

1.9表设计

2.0 idea连接数据库

 增删改查postman测试

项目git链接


0.准备

IntelliJ IDEA 2020.2.1

jdk_1.8.0_111

apache-tomcat-8.5.88

apache-maven-3.3.9        

postman


1.开搞

1.1创建项目

参考idea创建第一个springmvc项目_l10647的博客-CSDN博客

1.2部署tomcat

 

1.服务器的名字,默认是tomcat名字+版本号

2.服务器,选择本地tomcat文件夹

3.默认浏览器类型

4.项目访问地址,默认/项目名

5.虚拟机选项,防止乱码

参考IDEA 启动tomcat乱码问题+服务器请求中文参数乱码问题的解决_小白达不刘的博客-CSDN博客

-Dfile.encoding=UTF-8

6. 代码改动触发事件:       

 分别是热更新编译文件、重新部署、重启服务

 7.最小化idea时触发事件

 8.jdk版本

9.端口号

10.点击ok后,启动服务器,访url地址

 部署成功

2.搭建springmvc并整合mybatis

2.1pom.xml

1.干掉自动生成的build

2.导入spring的基础依赖,

spring-core、
spring-context、
spring-context-support

删掉target文件夹,重新部署,发现lib里已经自动导入了spring的基础jar包了

再导springmvc的两个包足以

接下来是:jdbc、mybatis、mybatis-spring整合包、mysql-connector-java、commons-dbcp连接池

完整pom.xml如下:

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--spring的-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>

    <!--springmvc的-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>

    <!--jdbc连接数据库-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.3.12.RELEASE</version>
    </dependency>

    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.0</version>
    </dependency>
    <!--mybatis和spring的整合包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>
    <!--mysql-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.26</version>
    </dependency>
    <!--dbcp连接池-->
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!--lombok-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.26</version>
    </dependency>

  </dependencies>

1.4web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--前端控制器-->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--spring配置文件 classpath:spring-*.xml :resources下所有的spring-前缀开头的xml文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-*.xml</param-value>
    </init-param>
    <!--随着服务器启动-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!--映射器-->
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <!--拦截所有,只放行jsp-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

1.5spring-mvc.xml

思路:首先先配好springmvc的三大配置 controller包扫描,视图解析器,注解支持

再配置service的包扫描,mapper的扫描及加载mapper代理对象,静态资源处理器配置

最后是配置连接池 和 sql会话工厂,sql会话工厂又包括【加载数据库配置、配置domain等包的别名、加载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
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
">

    <!--包扫描 扫描当前包及其子包-->
    <context:component-scan base-package="com.lyd.controller"></context:component-scan>

    <!--包扫描 扫描当前包及其子包-->
    <context:component-scan base-package="com.lyd.service"></context:component-scan>

    <!--包扫描 扫描当前包及其子包 加载mapper代理对象-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
        <property name="basePackage" value="com.lyd.mapper"></property>
    </bean>

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!--开启注解支持-->
    <mvc:annotation-driven></mvc:annotation-driven>
    <!--静态资源处理器配置
    判断当前请求是否是访问静态资源的,如果是交给默认web应用程序的servlet处理
                                   如果不是再交给dispatcherServlet-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>


    <!--加载jdbc配置文件
                        system-properties-mode="NEVER"
                        如果jdbc.properties配置文件参数前没有前缀,加上这个属性可避免和系统环境变量冲突-->
    <context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"></context:property-placeholder>

    <!--连接数据库配置
                destroy-method="close" 当容器关闭后,将连接池对象放回池中便于以后使用,而不是销毁该对象-->
    <bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
        <property name="driverClassName" value="${driverClassName}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${username}"></property>
        <property name="password" value="${password}"></property>
    </bean>

    <!--sql会话工厂-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory" >
        <!--加载数据库配置-->
        <property name="dataSource" ref="dataSource"></property>
        <!--配置别名  com.lyd.domain,com.lyd.dto可配置多个-->
        <property name="typeAliasesPackage" value="com.lyd.domain"></property>
        <!--加载xml文件-->
        <property name="mapperLocations" value="classpath:com/lyd/mapper/*Mapper.xml"></property>
    </bean>


</beans>

1.6 jdbc.properties

 jdbc.properties放在resources文件下,与spring-mvc.xml同级

driverClassName=com.mysql.jdbc.Driver
#jdbc:mysql://{主机名:端口号}/{数据库名}?useUnicode=true&characterEncoding=UTF-8
url=jdbc:mysql:///lyd-my-ssm?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456

1.7完善代码

项目结构如下:

@Controller
@RequestMapping("/emp")
public class EmpController {

    @Autowired
    private EmpService empService;

    @RequestMapping("/getAll")
    public ModelAndView getAll(){
        ModelAndView mv = new ModelAndView();
        List<Emp> empList = empService.getAll();
        mv.addObject("empList",empList);
        mv.setViewName("emp");
        return mv;
    }

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Long id;
    private String ename;
    private String ephone;
    private Integer eage;

}

1.8springmvc测试

1.9表设计

2.0 idea连接数据库

 增删改查postman测试

【未用json,使用moldelAndView接收】

 

项目git链接

my-first-ssm: idea创建第一个ssm项目【spring+springMVC+Mybatis整合】

           


个人学习总结,方便以后复习

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。