微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ssm

------------恢复内容开始------------

一:前后端分离

 

 

 

 

所谓的前后端分离

就是后台接收处理请求,返回 json数据。

前端拿到 json 数据,渲染到前端页面即可。

 

ssm框架搭建

 

ssm 搭建比较费事,而且很多配置可以不用手动配置。

 

 

 

我们会发现,不管做什么项目,很多配置都要重复的配置,干脆提前配置好,直接让程序员用。

 

后期有了 Spring Boot 。

 

Spring Boot 约等于 Spring+Spring MVC

 

 

 

 

 

一、 搭建步骤

 

 

 

  1. 新建 maven 项目
  2.  

     项目命名

  3.  

     配置maven

  4.  

     

     

     

     

    1. 运行自动导入依赖
    2.  

       添加两个包

    3.  

       

       

       

      项目搭建完毕,接下来要进行框架的整合。

      一般是先 Spring 整合 Spring MVC

      然后再整合 MyBatis。

       

      一、 Spring整合Spring MVC

       

      还是有两种, 一个是手动,一种是自动

       

      手动自动的区别是:

       手动的话需要自己添加 两个配置文件和 编写web.xml文件

       

      还是分两种,一个自动一个是手动。

       

      ===============先演示手动框架的添加=============

       

      二、 手动整合 Spring  Spring MVC

       

      1. 添加依赖

       

      我们现在使用的是  4.3.7 。如果你觉得比较旧,可以更换版本。但是要注意兼容性问题。

       

       

      1. 添加 Spring 的配置文件  applicationContext.xml

      这个配置文件可以放在两个地方

        a. src/main/resources 下    

        b. 跟 web.xml 同一个路径下

      我们暂时采用第一种

       

      到此为止  spring 的配置就完成了。

       

      其实 Spring  和 Srping MVC 不需要整合,因为它俩是同一个公司的,无缝整合。

      所以接下来只需要配置 spring mvc 即可。

    4. 一、 配置Spring MVC

    5.  

      两个配置文件创建好了。

      接下来配置一下两个配置文件

       

      一、 先配 spring mvc 的配置文件

       

       1. 扫描controller 不扫描service 不扫描 dao

       2. 配置视图解析器

    6.  

       

      一、 配置 Spring 的 配置文件

    7.  

       

      Spring 和 Spring MVC 整合完毕

       

      接下来就是整合 MyBatis。

       

      一、 测试

       

      如果可以正常启动,而且可以访问到 controller。

      说明到目前为止,项目没有问题

      接下来就可以放心的整合 mybatis。

       

       

      二、 整合 MyBatis

       

       

      详见另一个文档

       

      接下来需要创建 entity ,dao 和映射文件

       

      可以手动创建,这里,我们使用 mybatis 提供的逆向工程。

       

      逆向工程:

      根据表动态的生成 entity,dao,和映射文件

       

      你给我表,我给你生成 实体类,dao ,  映射文件

       

      三、 逆向工程

       

       

      逆向工程帮助我们生成了三种文件

      实体类  /  dao  /  sql映射文件

    8.  

       

       

       

       

      到此为止,项目整合完毕

       

      一、 怎么用

      我们现在的重心是在dao层。

       

      我们发现 逆向工程给我们生成了很多方法,映射文件生成了很多动态sql

       

      其实我们可以去使用;当然我们也可以选择不用,自己写,自己用;

       

      如果想用逆向工程提供的sql,怎么用?

    9.  

       

       

       

       

      我们发现,帮我们生成了这么多方法,基本上单张表的所有操作都有。

      一般情况,多张表的操作都是对应具体的业务逻辑。

       

      我们写代码的时候,尽量把复杂的多张表的操作变成n个单张表的操作。

      如果你觉得很复杂,没有办法拆,自己写一个方法,自己写对应的sql。然后调用自己的sql语句就可以了。

       

      一、 调用dao中的一个方法

    10.  

       

       

      统计Employee 中的总人数

       

      可以顺着写,也可以倒着写

       

      controller  ---service----dao

       

      dao----service----controller

       

       

       

      service 代码

    11.  

       

       

       

      dao 代码

       不用写了  逆向工程帮我们生成了。

       

       

      controller 代码

       

       

       测试成功

    12.  

       

    13. 意味着  controller 调用了 service,

             service 调用了 dao

       

      问题:

      controller 可以实例化, service 也有实现类。但是dao 没有实现类

       

      dao没有实现类,为什么还可以调用

    14.  

       

      这个类 扫描 接口,动态生成 接口的实现类。

      所以我们的service 调用的都是 MappserScannerConfigurer 生成的接口的实现类

       

      然后根据实现类找对应的 sql映射文件sql语句。

       

       

       

      方法的具体使用:

    15.  

      如果参数为 null ,直接执行  select count(*) from tbl_emp;

      如果参数不为空,会添加一个 where….

      select count (*) from tbl_emp where

      查询 did=16的 员工总数

      service 代码

 

 

 

 

 controller代码

 

 原理:

 

 

 

添加条件,mybatis 会根据条件动态生成sql语句.

 

 

逆向工程生成方法里面有需要你传递的参数。

重点说Example。

Example 中封装的就是条件。如果你调用方法的时候,传递的是null,表示没有条件,意思就是sql没有 where。

select * from xxx where xx==aa

delete from xxx

 

如果想要根据条件进行增删改查,我们只需要把条件封装到example实例中,mybatis 就会生成对应的带条件的sql。 在后面加上 where

 

如果我们不想用逆向工程生成方法,怎么办?

 

逆向工程生成sql 也不是万能的,总有不适用的时候。怎么办?

 

自己写 dao 方法,自己写 sql,自己写映射文件

 

业务:

查询性别是M的员工信息

 

 可以用

我们自己写

 

 

 

 service代码

 

 

 

 controller代码

 

 测试

 

 

刚才演示的是,自己写方法,自己写sql ,自己调用自己的sql

 

 

 

------------恢复内容结束------------

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐