Resumen del proceso de integración del marco de SSM

Inserte la descripción de la imagen aquí

Paso 1: análisis de la demanda y diseño de la base de datos

Diseñar la base de datos de acuerdo a las necesidades y necesidades del negocio, incluyendo principalmente el diseño de la estructura de la base de datos y algunas funciones que necesitan ser completadas (crud)

Paso 2: crea una base de datos

1. Crea una base de datos

2. Crea una estructura de tabla

3. Agregue restricciones y vistas, etc.

Paso 3: construye un proyecto de maven básico

1. Importe el paquete de dependencia correspondiente

Los paquetes de dependencia requeridos por SSM son los siguientes, escritos bajo dependencias en pom.xml:


<!--Junit单元测试包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- 数据库连接池 -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <!--Servlet - JSP -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!--Mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        
        <!--Spring和Mybatis整合所需依赖包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>

        <!--Spring依赖包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
<!--使用lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>

2. Resuelve el problema de la exportación de recursos estáticos.

Agregue el siguiente código en pom.xml

<!--解决maven静态资源导出问题-->
  <build>
  <resources>
      <resource>
          <directory>src/main/java</directory>
          <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
          </includes>
          <filtering>false</filtering>
      </resource>
      <resource>
          <directory>src/main/resources</directory>
          <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
          </includes>
          <filtering>false</filtering>
      </resource>
  </resources>
</build>

Paso 4: construya la estructura básica del proyecto

1. Cree la estructura del paquete

pojo (paquete de clase de entidad)

dao (capa de persistencia de la base de datos)

servicio (capa de servicio)

controlador (controlador frontal)

2. Construya archivos de recursos básicos (construidos bajo recurso)

mybatis-config.xml (archivo de configuración de Mybatis)

<?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>

</configuration>

applicationContext.xml (archivo de configuración de Spring)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

database.properties (archivo de recursos de conexión de base de datos)

jdbc.driver=com.mysql.jdbc.Driver
# mysql 8.0及以上驱动包位置发生了改变要这样写:
# jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?useSSL=true&useUnicode=true&characterEncoding=utf8
# mysql8.0及以上url也发生了一点点改变,应该这样写:
# jdbc.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
jdbc.username=用户名
jdbc.password=用户密码

Paso 5: escriba el código de capa de Mybatis

1. Escribir clases de entidad

La clase de entidad está escrita de acuerdo con los principios de ORM, aquí usamos lombok para ahorrar tiempo

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Books {
   private int bookID;
   private String bookName;
   private int bookCounts;
   private String detail;
}

2. Escriba la interfaz Mapper correspondiente a la tabla

Como el BooksMapper anterior, y aquí usamos anotaciones para desarrollar rápidamente

public interface BooksMapper {
   //增加一本书
   @Insert("insert into books(bookName, bookCounts, detail) VALUES (#{bookName},#{bookCounts},#{details})")
   int addBooks(Books books);
   //删除一本书
   @Delete("delete from books where bookID=#{id}")
   int deleteBookById(@Param("id") int id);
   //更新一本书
   @Update("update books set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}")
   int updateBooks(Books books);
   //查询一本书
   @Select("select * from books where bookID=#{id}")
   Books queryBooksById(@Param("id") int id);
   //查询全部书
   @Select("select * from books")
   List<Books> queryAllBooks();
}

3. Escriba el archivo Mapper.xml correspondiente en resource

Aquí creamos BooksMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--绑定到对应的接口-->
<mapper namespace="com.zyx.dao.BookMapper">

</mapper>

4. Vincular Mapper al archivo de configuración de Mybatis

Cuál es nuestro mybatis-config.xml aquí

<?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去做-->

   <!--起别名,指向实体类包-->
   <typeAliases>
       <package name="com.zyx.pojo"/>
   </typeAliases>
   <mappers>
   <!--将BooksMapper.xml绑定进来-->
       <mapper resource="BooksMapper.xml"/>
   </mappers>
</configuration>

En este punto, ¡el código de capa de Mybatis está listo!

5. Escriba el código de la capa de servicio

(1) Interfaz de servicio de escritura

Aquí está BooksService

public interface BooksService {
   //增加一本书
   int addBooks(Books books);
   //删除一本书
   int deleteBookById(int id);
   //更新一本书
   int updateBooks(Books books);
   //查询一本书
   Books queryBooksById(int id);
   //查询全部书
   List<Books> queryAllBooks();
}

(2) Clase de implementación de interfaz de escritura

Aquí está BooksServiceImpl

public class BooksServiceImpl implements BooksService{
   //service层调dao,所以需要有一个dao层的mapper对象
   private BooksMapper booksMapper;
   //为了方便Spring对它进行注入,写上set方法
   public void setBookMapper(BooksMapper booksMapper) {
       this.booksMapper = booksMapper;
  }

   public int addBooks(Books books) {
       return booksMapper.addBooks(books);
  }

   public int deleteBookById(int id) {
       return booksMapper.deleteBookById(id);
  }

   public int updateBooks(Books books) {
       return booksMapper.updateBooks(books);
  }

   public Books queryBooksById(int id) {
       return booksMapper.queryBooksById(id);
  }

   public List<Books> queryAllBooks() {
       return booksMapper.queryAllBooks();
  }
}

En este punto, el código de la capa Mybatis está completo.

Paso 6: escriba el código de la capa Spring

1. Escriba un archivo de recursos para Spring para integrar la capa DAO

Está aquí Spring-dao.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"
      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-4.2.xsd">
<!--1.关联数据库相关文件-->
   <context:property-placeholder location="classpath:database.properties"/>
<!--2.数据源(种类有)
   dbcp:半自动化操作,不能自动连接,需要手动连接
   c3p0:自动化操作,自动化加载配置文件,并且可以自动设置到对象中
   druid
   hikari
   DriverManngerDateSource Spring默认数据源
   这里我们使用C3P0
-->
   <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
       <property name="driverClass" value="${jdbc.driver}"/>
       <property name="jdbcUrl" value="${jdbc.url}"/>
       <property name="user" value="${jdbc.username}"/>
       <property name="password" value="${jdbc.password}"/>

       <!-- c3p0连接池的私有属性 -->
       <property name="maxPoolSize" value="30"/>
       <property name="minPoolSize" value="10"/>
       <!-- 关闭连接后不自动commit -->
       <property name="autoCommitOnClose" value="false"/>
       <!-- 获取连接超时时间 -->
       <property name="checkoutTimeout" value="10000"/>
       <!-- 当获取连接失败重试次数 -->
       <property name="acquireRetryAttempts" value="2"/>
   </bean>
<!--3.sqlSessionFactory-->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <!-- 注入数据库连接池 -->
       <property name="dataSource" ref="dataSource"/>
       <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
       <property name="configLocation" value="classpath:mybatis-config.xml"/>
   </bean>

   <!-- 4.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中 -->
   <!--解释 :https://www.cnblogs.com/jpfss/p/7799806.html-->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <!-- 注入sqlSessionFactory -->
       <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
       <!-- 给出需要扫描Dao接口包 -->
       <property name="basePackage" value="com.zyx.dao"/>
   </bean>
</beans>

2. Escribir archivos de recursos de la capa de servicio integrada de Spring

El archivo aquí es Spring-service.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-4.2.xsd
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.2.xsd">
   <!--1.扫描service下的包-->
   <context:component-scan base-package="com.zyx.service"/>
   <!--2.将业务类注入到Spring容器中,可以使用配置,也可以使用注解
       注解则不需要以下代码
   -->
   <bean class="com.zyx.service.BookServiceImpl" id="bookService">
       <property name="bookMapper" ref="bookMapper"/>
   </bean>
   <!--3.声明式事务配置-->
   <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
   <!--注入数据源-->
       <property name="dataSource" ref="dataSource"/>
   </bean>

   <!--4.aop事务支持-->

</beans>

Nota: use anotaciones para agregar @Service por encima de la clase de implementación de la interfaz

En este punto, ¡el código de la capa Spring está completo!

Paso 7: escriba el código de capa SpringMVC

1. Aumente el soporte web y cree las carpetas necesarias

Aquí es relativamente simple, pero no hay mucha explicación.

2. Escriba el archivo de recursos de configuración de SpringMVC

Aquí estamos 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: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
      https://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
      https://www.springframework.org/schema/mvc/spring-mvc.xsd">


<!--1.注解驱动-->
   <mvc:annotation-driven/>
   <!--2.静态资源过滤-->
   <mvc:default-servlet-handler/>
   <!--3.扫描包 扫描Controller-->
   <context:component-scan base-package="com.zyx.controller"/>
   <!--4.视图解析器-->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="WEB-INF/jsp/"/>
       <property name="suffix" value=".jsp"/>
   </bean>
</beans>

3. Escriba el archivo de configuración web.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">
<!--DispatcherServlet-->
   <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:Spring-mvc.xml</param-value>
       </init-param>
       <!--设置启动级别,和Tomcat一起启动-->
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
   <!--乱码过滤器-->
   <filter>
       <filter-name>encoding</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>
           <param-name>encoding</param-name>
           <param-value>utf-8</param-value>
       </init-param>
   </filter>
   <filter-mapping>
       <filter-name>encoding</filter-name>
       <url-pattern>/*</url-pattern>
   </filter-mapping>
   <!--为了安全设置Session过期时间-->
   <session-config>
       <session-timeout>15</session-timeout>
   </session-config>
</web-app>

Paso 8: configurar Tomcat

levemente

Paso 9: Incrementar el negocio según la demanda

Es escribir el código de la capa del controlador y la capa de vista.

Tal como

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
   <title>首页</title>
 </head>
 <body>
 <a href="/allBook">点击跳转到数据展示页面</a>
 </body>
</html>

BookController.java

@Controller
public class BookController {
   //controller层调service层
   @Autowired
   @Qualifier("bookService")
   private BookService bookService;

   //查询所有书籍并且返回到书籍展示页面
   @RequestMapping("/allBook")
   public String list(Model model){
       List<Books> books = bookService.queryAllBooks();
       model.addAttribute("list",books);
       return "allBook";
  }
}

allBook.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>书籍展示页面</title>
</head>
<body>
${list}
</body>
</html>

Supongo que te gusta

Origin blog.csdn.net/weixin_49527334/article/details/113247683
Recomendado
Clasificación