ssm整合教程

目录

写在前面

目录结构

添加依赖

web.xml

jdbc.properties

spring.xml

mybatis.xml

springmvc.xml

pom.xml额外配置

last:写个测试样例看看整合成功没。

User.java

UserDao.java(接口)

UserController.java

UserService.java

UserServiceImpl.java

UserDao.xml

错误类型:


写在前面

结合谢亮辉老师的整合教程和b站教程,数据库用的是smbms数据库。spring是用于管理mybatis和springmvc的,springmvc是spring下面的一个子模块,所以只需要整合spring和mybatis。

这是谢老师的教程地址:

SSM框架整合 - 作业部落 Cmd Markdown 编辑阅读器

目录结构

这是我的目录结构 三个框架分别放三个框架相关配置文件,要注意的是xml文件存放的位置,我们需要把xml导入到web项目中,也就是会在target中显示,下面会配置。

添加依赖

导入依赖,一般下面这些依赖都是兼容大部分环境的,直接复制到你的 pom.xml 中即可

 <dependencies>
         <!-- SpringMVC -->
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-webmvc</artifactId>
             <version>5.0.11.RELEASE</version>
         </dependency>
 ​
         <!-- Spring JDBC -->
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-jdbc</artifactId>
             <version>5.0.11.RELEASE</version>
         </dependency>
 ​
         <!-- Spring AOP -->
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-aop</artifactId>
             <version>5.0.11.RELEASE</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-aspects</artifactId>
             <version>5.0.11.RELEASE</version>
         </dependency>
 ​
         <!-- MyBatis -->
         <dependency>
             <groupId>org.mybatis</groupId>
             <artifactId>mybatis</artifactId>
             <version>3.4.5</version>
         </dependency>
 ​
         <!-- MyBatis整合Spring -->
         <dependency>
             <groupId>org.mybatis</groupId>
             <artifactId>mybatis-spring</artifactId>
             <version>1.3.1</version>
         </dependency>
 ​
         <!-- MySQL驱动 -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>8.0.11</version>
         </dependency>
 ​
         <!-- C3P0 -->
         <dependency>
             <groupId>c3p0</groupId>
             <artifactId>c3p0</artifactId>
             <version>0.9.1.2</version>
         </dependency>
 ​
         <!-- JSTL -->
         <dependency>
             <groupId>jstl</groupId>
             <artifactId>jstl</artifactId>
             <version>1.2</version>
         </dependency>
 ​
         <!-- ServletAPI -->
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>3.1.0</version>
         </dependency>
 ​
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <version>1.18.6</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
web.xml

然后配置 web.xml ,写入之后有的地方可能会有红色波浪线,但是并不影响运行,倒数第二行必须要加,我具体也不让太清楚,好像是会出现多个web-app错误,是由于jar包冲突导致的,但上面的jar包都是必须的不能删掉某个,所以加上那一行/(ㄒoㄒ)/~~。

 <!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>
     <!-- 启动Spring -->
     <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:spring.xml</param-value>
     </context-param>
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
 ​
     <!-- Spring MVC -->
     <servlet>
         <servlet-name>dispatcherServlet</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>classpath:springmvc.xml</param-value>
         </init-param>
     </servlet>
 ​
     <servlet-mapping>
         <servlet-name>dispatcherServlet</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
 ​
     <!-- 字符编码过滤器 -->
     <filter>
         <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
 ​
     <!-- 加载静态资源 -->
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.js</url-pattern>
     </servlet-mapping>
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.css</url-pattern>
     </servlet-mapping>
     <servlet-mapping>
         <servlet-name>default</servlet-name>
         <url-pattern>*.jpg</url-pattern>
     </servlet-mapping>
     <absolute-ordering/>
 </web-app>
 
jdbc.properties

🤫需要看清数据库及用户名密码,改成自己的。

jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8&useSSL=false
 jdbc.username=root
 jdbc.password=root123
 c3p0.maxPoolSize=30
 c3p0.minPoolSize=10
 c3p0.autoCommitOnClose=false
 c3p0.checkoutTimeout=10000
 c3p0.acquireRetryAttempts=2
spring.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-3.2.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
 ">
 ​
     <context:property-placeholder location="classpath:jdbc.properties"/>
 ​
 ​
     <!--获取数据源 使用c3p0连接池技术new c3p0类-->
     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
         <!--对象调用属性的setter方法赋值-->
         <!--name的属性值固定的,value="${属性文件的属性值}"-->
         <property name="driverClass" value="${jdbc.driver}"/>
         <property name="jdbcUrl" value="${jdbc.url}"/>
         <property name="user" value="${jdbc.username}"/>
         <property name="password" value="${jdbc.password}"/>
         <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
         <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
         <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
         <property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
         <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
     </bean>
     
 ​
     <!-- 配置MyBatis SqlSessionFactory 下面两个文件名字改成自己的 -->
     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
         <property name="dataSource" ref="dataSource"></property>
         <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
         <property name="configLocation" value="classpath:mybatis.xml"></property>
     </bean>
 ​
     <!-- 扫描自定义的Mapper接口 -->
     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
         <property name="basePackage" value="com.hz.dao"></property>
     </bean>
 ​
 </beans>
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">
 <configuration>
     <settings>
         <!-- 打印SQL-->
         <setting name="logImpl" value="STDOUT_LOGGING" />
     </settings>
 ​
     <typeAliases>
         <!-- 指定一个包名,MyBatis会在包名下搜索需要的JavaBean-->
         <package name="com.hz.pojo"/>
     </typeAliases>
 ​
 </configuration>
springmvc.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-3.0.xsd
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
 ​
     <!-- 启动注解驱动 -->
     <mvc:annotation-driven></mvc:annotation-driven>
 ​
     <!-- 扫描业务代码 -->
     <context:component-scan base-package="com.hz"></context:component-scan>
 ​
     <!-- 配置视图解析器 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/"></property>
         <property name="suffix" value=".jsp"></property>
     </bean>
 ​
 </beans>
pom.xml额外配置

这个也就是第一步说的,你要看你的xml文件存放位置,自己修改即可,必须要加上,反正不加会报错提示找不到业务代码。放到<build>里面。

 <!--        这是把相关xml文件加载到web项目中,target中会显示-->
 <resources>
     <resource>
         <directory>src/main/java</directory>
         <includes>
             <include>**/*.xml</include>
         </includes>
     </resource>
     <resource>
         <directory>src/main/resources</directory>
         <includes>
             <include>**/*.xml</include>
         </includes>
     </resource>
     <resource>
         <directory>src/main/resources</directory>
         <includes>
             <include>*.xml</include>
             <include>*.properties</include>
         </includes>
     </resource>
 </resources>
last:写个测试样例看看整合成功没。

User.java
 package com.hz.pojo;
 ​
 import lombok.Data;
 ​
 @Data
 public class User {
     private Integer id;
     private String userCode;
     private String userName;
 }
UserDao.java(接口)
 package com.hz.dao;
 ​
 import com.hz.pojo.User;
 ​
 import java.util.List;
 ​
 public interface UserDao {
     public List<User> findAll();
 }
UserController.java
 package com.hz.controller;
 ​
 import com.hz.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 ​
 @Controller
 public class UserController {
 ​
     @Autowired
     private UserService userService;
 ​
     @RequestMapping("/user")
     public ModelAndView findAll() {
         ModelAndView modelAndView = new ModelAndView();
         modelAndView.setViewName("index");
         modelAndView.addObject("list", userService.findAll());
         return modelAndView;
     }
 }
UserService.java
 package com.hz.service;
 ​
 import com.hz.pojo.User;
 ​
 import java.util.List;
 ​
 public interface UserService {
     public List<User> findAll();
 }
UserServiceImpl.java
 package com.hz.service.impl;
 ​
 import com.hz.dao.UserDao;
 import com.hz.pojo.User;
 import com.hz.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 ​
 import java.util.List;
 ​
 @Service
 public class UserServiceImpl implements UserService {
 ​
     @Autowired
     private UserDao userdao;
 ​
     @Override
     public List<User> findAll() {
         return userdao.findAll();
     }
 }
UserDao.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.hz.dao.UserDao">
     <select id="findAll" resultType="User">
         select * from smbms_user
     </select>
 </mapper>
错误类型:

这个比较常见,是由于mybatis 负责那一部分出现了问题。也需要看mybatis和spring整合有没有问题。我的这两者整合代码在spring.xml中

  • 32
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王奇hh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值