【SSM直击大厂】最终章:SSM 整合

简介: 学完了整个Spring+SpringMVC+Mybatis基础知识,最后将三者整合到一起共同发挥作用才是最重要的。其中SSM整合的实质,仅仅就是将Mybatis整合入Spring。因为SpringMVC原本就是Spring的一部分,不用专门整合。

🙊🙊作者主页:🔗求不脱发的博客

📔📔 精选专栏:🔗SSM直击大厂

📋📋 精彩摘要:学完了整个Spring+SpringMVC+Mybatis基础知识,最后将三者整合到一起共同发挥作用才是最重要的。其中SSM整合的实质,仅仅就是将Mybatis整合入Spring。因为SpringMVC原本就是Spring的一部分,不用专门整合。

💞💞觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论💬支持博主🤞

📚目录

📖SSM 整合

📝1️⃣原始整合方式

✨1.创建数据库表

✨2.创建Maven工程

✨3.配置pom.xml坐标

✨4.实体类

✨5.Mapper接口

✨6.Service接口

✨7.Service实现

✨8.Controller

✨9.相关配置文件

📝2️⃣Spring整合MyBatis

✨1.整合思路

✨2.将SqlSessionFactory配置到Spring容器中

✨3.扫描Mapper,让Spring容器产生Mapper实现类

✨4.配置声明式事务控制

✨5.更新Service实现类代码

📝【SSM直击大厂】完结散花

📖SSM 整合
📝1️⃣原始整合方式
✨1.创建数据库表
create database ssm;
create table account(

id int primary key auto_increment,
name varchar(100),
money double(7,2)

);
表数据:

id namo money
1 tom 5000
2 lucy 5000
✨2.创建Maven工程
基本项目结构:

✨3.配置pom.xml坐标
相关依赖:

这里不再详细列出具体代码,其中主要包括以下相关依赖(简单列出artifactId)。

spring-context
aspectjweaver
spring-jdbc
spring-tx
spring-test
spring-webmvc

servlet-api
jsp-api

mybatis
mybatis-spring
mybatis-plus
lombok
mysql-connector-java
c3p0

✨4.实体类
数据库表 account 对应实体类:

public class Account {

private Integer id;//id
private String name;//姓名
private Double money;//余额

}
✨5.Mapper接口
public interface AccountMapper {

public void save(Account account);
public List<Account> findAll();

}
✨6.Service接口
public interface AccountService {

void save(Account account); //保存账户数据
List<Account> findAll(); //查询账户数据

}
✨7.Service实现
@Service("accountService")
public class AccountServiceImpl implements AccountService {

public void save(Account account) {
    SqlSession sqlSession = MyBatisUtils.openSession();
    AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
    accountMapper.save(account);
    sqlSession.commit();
    sqlSession.close();
}

public List<Account> findAll() {
    SqlSession sqlSession = MyBatisUtils.openSession();
    AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
    return accountMapper.findAll();
}

}

✨8.Controller
@Controller
public class AccountController {

@Autowired
private AccountService accountService;

@RequestMapping("/save")
@ResponseBody
public String save(Account account) {
    accountService.save(account);
    return "save success";
}

@RequestMapping("/findAll")
public ModelAndView findAll() {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("accountList");
    modelAndView.addObject("accountList", accountService.findAll());
    return modelAndView;
}

}

✨9.相关配置文件
Spring配置文件:applicationContext.xml
SprngMVC配置文件:spring-mvc.xml
MyBatis映射文件:AccountMapper.xml
MyBatis核心文件:sqlMapConfig.xml
数据库连接信息文件:jdbc.properties
Web.xml文件:web.xml
日志文件:log4j.xml
📝2️⃣Spring整合MyBatis
✨1.整合思路
对于下面部分代码:

SqlSession sqlSession = MyBatisUtils.openSession();

    AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
    accountMapper.save(account);
    sqlSession.commit();
    sqlSession.close();

可将Session工厂交给Spring容器管理,从容器中获得执行操作的Mapper实例。

将事务的控制交给Spring容器使用声明式事务控制。

✨2.将SqlSessionFactory配置到Spring容器中
在applicationContext.xml中配置Bean

<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

<!--配置数据源信息-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"></property>
    <property name="jdbcUrl" value="${jdbc.url}"></property>
    <property name="user" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>

<!--配置sessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <!--加载mybatis核心文件-->
    <property name="configLocation" value="classpath:sqlMapConfig-spring.xml"></property>
</bean>

✨3.扫描Mapper,让Spring容器产生Mapper实现类
在applicationContext.xml中配置

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.ssm.mapper"></property>
</bean>

✨4.配置声明式事务控制
在applicationContext.xml中配置

<!--声明式事务控制-->
<!--平台事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<!--配置事务增强-->
<tx:advice id="txAdvice">
    <tx:attributes>
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>

<!--事务的aop织入-->
<aop:config>
    <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"></aop:advisor>
</aop:config>

✨5.更新Service实现类代码
@Service("accountService")
public class AccountServiceImpl implements AccountService {

@Autowired
private AccountMapper accountMapper;

public void save(Account account) {
    accountMapper.save(account);
}

public List<Account> findAll() {
    return accountMapper.findAll();
}

}
📝【SSM直击大厂】完结散花

相关文章
|
XML 设计模式 开发框架
【SSM直击大厂】第一章:Spring快速入门
【摘要】 Spring 是分层的 Java SE / EE 应用 full - stack 轻量级开源框架,以 loC ( Inverse Of Control :反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核。提供了展现层 SpringMvC 和持久层 Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界
146 1
|
Java Spring 容器
【SSM直击大厂】第二章:Spring配置文件详解
Spring的重点配置 <bean>标签 id属性:在容器中Bean实例的唯一标识,不允许重复 class属性:要实例化的Bean的全限定名 scope属性:Bean的作用范围,常用是Singleton(默认)和prototype <property>标签:属性注入 name属性:属性名称 value属性:注入的普通属性值 ref属性:注入的对象引用值 <list>标签 <map>标签 <properties>标签 <constructor-arg>标签 <import>标签:导入其他的Spring的分文件
109 0
|
XML druid Java
【SSM直击大厂】第三章:Spring配置数据源及注解开发
目录 1.Spring配置数据源 1.1 数据源(连接池)的作用 1.2 数据源的开发步骤 1.3 Spring配置数据源 1.4 抽取jdbc配置文件配置数据源 1.5 知识要点 2.Spring注解开发 2.1 Spring原始注解 2.2 Spring新注解
168 0
|
前端开发
【SSM直击大厂】第四章:SpringMVC快速入门
SpringMVC的相关组件 • 前端控制器:DispatcherServlet • 处理器映射器:HandlerMapping • 处理器适配器:HandlerAdapter • 处理器:Handler • 视图解析器:View Resolver • 视图:View SpringMVC的注解和配置 • 请求映射注解:@RequestMapping • 视图解析器配置: REDIRECT_URL_PREFIX = "redirect:" FORWARD_URL_PREFIX = "forward:" prefix = ""; suffix = "";
103 0
|
存储 JSON 前端开发
【SSM直击大厂】第五章:SpringMVC数据响应
SpringMVC的数据响应方式 1) 页面跳转 直接返回字符串 通过ModelAndView对象返回 2) 回写数据 直接返回字符串 返回对象或集合
119 0
|
缓存 前端开发 JavaScript
【SSM直击大厂】第六章:SpringMVC获取请求数据
MVC实现数据请求参数配置 基本类型参数 POJO类型参数 数组类型参数 集合类型参数​​​​​​​ MVC获取请求数据处理 中文乱码问题
168 0
|
SQL 消息中间件 Java
【SSM直击大厂】第七章:Spring JdbcTemplate基础详解
📋📋 精彩摘要:JdbcTemplate JdbcTemplate 是 Spring JDBC 核心包(core)中的核心类,它可以通过配置文件、注解、Java 配置类等形式获取数据库的相关信息,实现了对 JDBC 开发过程中的驱动加载、连接的开启和关闭、SQL 语句的创建与执行、异常处理、事务处理、数据类型转换等操作的封装。
138 0
|
前端开发 Java Spring
【SSM直击大厂】第八章:SpringMVC拦截器
📋📋 精彩摘要:Spring MVC 的拦截器(Interceptor)与 Java Servlet 的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。本文将代码演示和文字描述详解拦截器的使用。
86 0
|
前端开发 Java Spring
【SSM直击大厂】第九章:Spring MVC异常处理机制
📋📋 精彩摘要:Spring MVC中提供了一个通用的异常处理机制,它提供了一个成熟、简洁并且清晰的异常处理方案。当使用Spring MVC开发Web应用时,利用这套现成的机制进行异常处理也更加自然并且高效。
82 0
|
XML 监控 Java
【SSM直击大厂】第十章:Spring AOP面向切面编程
📋📋 精彩摘要:Spring AOP面向切面编程是Java OOP面向对象编程的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍 生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
128 0
下一篇
无影云桌面