Maven--简单整合SSM框架

蔚落 2021-08-13 19:06 586阅读 0赞

Maven整合SSM

准备表

  1. CREATE TABLE `book` (
  2. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '图书ID',
  3. `name` varchar(100) NOT NULL COMMENT '图书名称',
  4. `number` int(11) NOT NULL COMMENT '图书数量',
  5. `detail` varchar(200) NOT NULL COMMENT '图书描述',
  6. PRIMARY KEY (`book_id`)
  7. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='图书表'

在这里插入图片描述

准备项目

1. 新建Maven工程
在这里插入图片描述
2. 配置pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>pers.zhang</groupId>
  4. <artifactId>SSM</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>war</packaging>
  7. <properties>
  8. <!-- log4j日志文件管理包版本 -->
  9. <slf4j.version>1.7.7</slf4j.version>
  10. <log4j.version>1.2.17</log4j.version>
  11. </properties>
  12. <dependencies>
  13. <!-- 单元测试 -->
  14. <dependency>
  15. <groupId>junit</groupId>
  16. <artifactId>junit</artifactId>
  17. <version>4.10</version>
  18. </dependency>
  19. <!-- 日志文件管理包 -->
  20. <!-- log start -->
  21. <dependency>
  22. <groupId>log4j</groupId>
  23. <artifactId>log4j</artifactId>
  24. <version>${log4j.version}</version>
  25. </dependency>
  26. <!-- 格式化对象,方便输出日志 -->
  27. <dependency>
  28. <groupId>com.alibaba</groupId>
  29. <artifactId>fastjson</artifactId>
  30. <version>1.1.41</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.slf4j</groupId>
  34. <artifactId>slf4j-api</artifactId>
  35. <version>${slf4j.version}</version>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.slf4j</groupId>
  39. <artifactId>slf4j-log4j12</artifactId>
  40. <version>${slf4j.version}</version>
  41. </dependency>
  42. <!-- 数据库驱动 -->
  43. <dependency>
  44. <groupId>mysql</groupId>
  45. <artifactId>mysql-connector-java</artifactId>
  46. <version>5.1.6</version>
  47. </dependency>
  48. <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
  49. <dependency>
  50. <groupId>commons-dbcp</groupId>
  51. <artifactId>commons-dbcp</artifactId>
  52. <version>1.2.2</version>
  53. </dependency>
  54. <!-- DAO:mybatis -->
  55. <dependency>
  56. <groupId>org.mybatis</groupId>
  57. <artifactId>mybatis</artifactId>
  58. <version>3.3.0</version>
  59. </dependency>
  60. <dependency>
  61. <groupId>org.mybatis</groupId>
  62. <artifactId>mybatis-spring</artifactId>
  63. <version>1.2.3</version>
  64. </dependency>
  65. <!-- 3.Servlet web、jsp-->
  66. <dependency>
  67. <groupId>javax.servlet</groupId>
  68. <artifactId>jstl</artifactId>
  69. <version>1.2</version>
  70. </dependency>
  71. <dependency>
  72. <groupId>javax.servlet</groupId>
  73. <artifactId>servlet-api</artifactId>
  74. <version>2.5</version>
  75. <scope>provided</scope>
  76. </dependency>
  77. <!-- Spring 核心 -->
  78. <dependency>
  79. <groupId>org.springframework</groupId>
  80. <artifactId>spring-core</artifactId>
  81. <version>4.2.4.RELEASE</version>
  82. </dependency>
  83. <dependency>
  84. <groupId>org.springframework</groupId>
  85. <artifactId>spring-beans</artifactId>
  86. <version>4.2.4.RELEASE</version>
  87. </dependency>
  88. <dependency>
  89. <groupId>org.springframework</groupId>
  90. <artifactId>spring-context</artifactId>
  91. <version>4.2.4.RELEASE</version>
  92. </dependency>
  93. <!-- spring DAO -->
  94. <dependency>
  95. <groupId>org.springframework</groupId>
  96. <artifactId>spring-jdbc</artifactId>
  97. <version>4.2.4.RELEASE</version>
  98. </dependency>
  99. <dependency>
  100. <groupId>org.springframework</groupId>
  101. <artifactId>spring-tx</artifactId>
  102. <version>4.2.4.RELEASE</version>
  103. </dependency>
  104. <!-- spring web -->
  105. <dependency>
  106. <groupId>org.springframework</groupId>
  107. <artifactId>spring-web</artifactId>
  108. <version>4.2.4.RELEASE</version>
  109. </dependency>
  110. <dependency>
  111. <groupId>org.springframework</groupId>
  112. <artifactId>spring-webmvc</artifactId>
  113. <version>4.2.4.RELEASE</version>
  114. </dependency>
  115. <!-- spring测试 -->
  116. <dependency>
  117. <groupId>org.springframework</groupId>
  118. <artifactId>spring-test</artifactId>
  119. <version>4.2.4.RELEASE</version>
  120. </dependency>
  121. </dependencies>
  122. <build>
  123. <plugins>
  124. <plugin>
  125. <groupId>org.apache.maven.plugins</groupId>
  126. <artifactId>maven-compiler-plugin</artifactId>
  127. <version>3.5.1</version>
  128. <configuration>
  129. <source>1.8</source>
  130. <target>1.8</target>
  131. <encoding>UTF-8</encoding>
  132. </configuration>
  133. </plugin>
  134. </plugins>
  135. </build>
  136. </project>

3. jdbc.properties连接数据库属性文件

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf8
  3. jdbc.username=root
  4. jdbc.password=123456

4. log4j.properties日志文件

  1. log4j.rootCategory=DEBUG, stdout , R
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
  5. log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
  6. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

6.applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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-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/aop http://www.springframework.org/schema/aop/spring-aop-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/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
  3. <!-- 1读取db.properties -->
  4. <context:property-placeholder location="classpath:jdbc.properties"/>
  5. <!-- 2.配置数据源 -->
  6. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  7. <!-- 数据库驱动 -->
  8. <property name="driverClassName" value="${jdbc.driver}"/>
  9. <property name="url" value="${jdbc.url}"/>
  10. <property name="username" value="${jdbc.username}"/>
  11. <property name="password" value="${jdbc.password}"/>
  12. </bean>
  13. <!-- 3.事务管理器,依赖于数据源 -->
  14. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  15. <property name="dataSource" ref="dataSource"/>
  16. </bean>
  17. <!-- 4.开启事务注解 -->
  18. <tx:annotation-driven transaction-manager="transactionManager"/>
  19. <!-- 5.配置MyBatis工厂 SqlSessionFactory -->
  20. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  21. <!-- 注入数据源 -->
  22. <property name="dataSource" ref="dataSource"/>
  23. <!-- 指定Mybatis核心配置文件位置 -->
  24. <property name="configLocation" value="classpath:mybatis-config.xml"/>
  25. </bean>
  26. <!-- 6.配置mapper扫描器 -->
  27. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  28. <property name="basePackage" value="dao"/>
  29. </bean>
  30. <!-- 7.扫描Service -->
  31. <context:component-scan base-package="service"/>
  32. </beans>

7.mybatis-config.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <!-- 别名定义 -->
  5. <typeAliases>
  6. <package name="po"/>
  7. </typeAliases>
  8. </configuration>

8.springmvc-config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-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/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  3. <!--1. 配置包扫描器,扫描@Controller注解的类 -->
  4. <context:component-scan base-package="controller"/>
  5. <!--2. 开启mvc注解 -->
  6. <mvc:annotation-driven/>
  7. <!--3. 配置视图解析器 -->
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="prefix" value="/WEB-INF/jsp/"/>
  10. <property name="suffix" value=".jsp"/>
  11. </bean>
  12. </beans>

9.创建jsp文件夹,在文件夹下创建book.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>书籍信息</title>
  8. </head>
  9. <body>
  10. <table border="1">
  11. <tr>
  12. <td>ID</td>
  13. <td>编号</td>
  14. <td>书名</td>
  15. <td>描述</td>
  16. </tr>
  17. <tr>
  18. <td>${book.id}</td>
  19. <td>${book.number}</td>
  20. <td>${book.name}</td>
  21. <td>${book.detail}</td>
  22. </tr>
  23. </table>
  24. </body>
  25. </html>

10.web.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  3. <!-- 1.配置加载Spring文件的监听器 -->
  4. <context-param>
  5. <param-name>contextConfigLocation</param-name>
  6. <param-value>classpath:applicationContext.xml</param-value>
  7. </context-param>
  8. <listener>
  9. <listener-class>
  10. org.springframework.web.context.ContextLoaderListener
  11. </listener-class>
  12. </listener>
  13. <!-- 2.编码过滤器 -->
  14. <filter>
  15. <filter-name>encoding</filter-name>
  16. <filter-class>
  17. org.springframework.web.filter.CharacterEncodingFilter
  18. </filter-class>
  19. <init-param>
  20. <param-name>encoding</param-name>
  21. <param-value>UTF-8</param-value>
  22. </init-param>
  23. </filter>
  24. <filter-mapping>
  25. <filter-name>encoding</filter-name>
  26. <url-pattern>/</url-pattern>
  27. </filter-mapping>
  28. <!-- 3.配置SpringMVC前端核心控制器 -->
  29. <servlet>
  30. <servlet-name>springmvc</servlet-name>
  31. <servlet-class>
  32. org.springframework.web.servlet.DispatcherServlet
  33. </servlet-class>
  34. <init-param>
  35. <param-name>contextConfigLocation</param-name>
  36. <param-value>classpath:springmvc-config.xml</param-value>
  37. </init-param>
  38. <!-- 4.服务器启动后立即加载SpringMVC配置文件 -->
  39. <load-on-startup>1</load-on-startup>
  40. </servlet>
  41. <servlet-mapping>
  42. <servlet-name>springmvc</servlet-name>
  43. <url-pattern>/</url-pattern>
  44. </servlet-mapping>
  45. </web-app>

整合完成,下面测试

book.java

  1. package po;
  2. public class Book {
  3. private long id; //书id
  4. private String name; //书名
  5. private int number; //数量
  6. private String detail; //详情
  7. public long getId() {
  8. return id;
  9. }
  10. public void setId(long id) {
  11. this.id = id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public int getNumber() {
  20. return number;
  21. }
  22. public void setNumber(int number) {
  23. this.number = number;
  24. }
  25. public String getDetail() {
  26. return detail;
  27. }
  28. public void setDetail(String detail) {
  29. this.detail = detail;
  30. }
  31. @Override
  32. public String toString() {
  33. return "Book [id=" + id + ", name=" + name + ", number=" + number + ", detail=" + detail + "]";
  34. }
  35. }

BookDao.java

  1. package dao;
  2. import po.Book;
  3. public interface BookDao {
  4. public Book findBookById(Integer id);
  5. }

BookDao.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="dao.BookDao">
  4. <select id="findBookById" parameterType="Integer" resultType="Book">
  5. select * from book where id=#{id}
  6. </select>
  7. </mapper>

BookService.java

  1. package service;
  2. import po.Book;
  3. public interface BookService {
  4. public Book findBookById(Integer id);
  5. }

BookServiceImpl.java

  1. package service;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. import org.springframework.transaction.annotation.Transactional;
  5. import dao.BookDao;
  6. import po.Book;
  7. @Service
  8. @Transactional
  9. public class BookServiceImpl implements BookService{
  10. @Autowired
  11. private BookDao bookDao;
  12. @Override
  13. public Book findBookById(Integer id) {
  14. return bookDao.findBookById(id);
  15. }
  16. }

BookController.java

  1. package controller;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import po.Book;
  7. import service.BookService;
  8. @Controller
  9. @RequestMapping("/book")
  10. public class BookController {
  11. @Autowired
  12. private BookService bookService;
  13. @RequestMapping("/find")
  14. public String findBookById(Integer id, Model model) {
  15. Book book = bookService.findBookById(id);
  16. model.addAttribute("book", book);
  17. return "book";
  18. }
  19. }

启动tomcat测试
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,586人围观)

还没有评论,来说两句吧...

相关阅读