ssm
------------恢复内容开始------------
一:前后端分离

 
所谓的前后端分离
就是后台接收处理请求,返回 json数据。
前端拿到 json 数据,渲染到前端页面即可。
二 ssm框架搭建
ssm 搭建比较费事,而且很多配置可以不用手动配置。
我们会发现,不管做什么项目,很多配置都要重复的配置,干脆提前配置好,直接让程序员用。
后期有了 Spring Boot 。
Spring Boot 约等于 Spring+Spring MVC
一、 搭建步骤
- 新建 maven 项目
 
- 
项目命名 
- 
 配置maven 
- 
   - 运行自动导入依赖
  - 添加两个包 
- 
  项目搭建完毕,接下来要进行框架的整合。 一般是先 Spring 整合 Spring MVC 然后再整合 MyBatis。 一、 Spring整合Spring MVC 还是有两种, 一个是手动,一种是自动。 手动自动的区别是: 手动的话需要自己添加 两个配置文件和 编写web.xml文件。 还是分两种,一个是自动,一个是手动。 ===============先演示手动框架的添加============= 二、 手动整合 Spring Spring MVC - 添加依赖
 我们现在使用的是 4.3.7 。如果你觉得比较旧,可以更换版本。但是要注意兼容性问题。 - 添加 Spring 的配置文件 applicationContext.xml
 这个配置文件可以放在两个地方 a. src/main/resources 下 b. 跟 web.xml 同一个路径下 我们暂时采用第一种 到此为止 spring 的配置就完成了。 其实 Spring 和 Srping MVC 不需要整合,因为它俩是同一个公司的,无缝整合。 所以接下来只需要配置 spring mvc 即可。 
- 
一、 配置Spring MVC 
 
- 
两个配置文件创建好了。 接下来配置一下两个配置文件。 一、 先配 spring mvc 的配置文件 1. 扫描controller 不扫描service 不扫描 dao 2. 配置视图解析器 
  - 一、 配置 Spring 的 配置文件 
 
- 
Spring 和 Spring MVC 整合完毕 接下来就是整合 MyBatis。 一、 测试 如果可以正常启动,而且可以访问到 controller。 说明到目前为止,项目没有问题 接下来就可以放心的整合 mybatis。 二、 整合 MyBatis 详见另一个文档 接下来需要创建 entity ,dao 和映射文件 可以手动创建,这里,我们使用 mybatis 提供的逆向工程。 逆向工程: 根据表动态的生成 entity,dao,和映射文件。 你给我表,我给你生成 实体类,dao , 映射文件。 三、 逆向工程 逆向工程帮助我们生成了三种文件 实体类 / dao / sql映射文件 
- 
 到此为止,项目整合完毕 一、 怎么用我们现在的重心是在dao层。 我们发现 逆向工程给我们生成了很多方法,映射文件中生成了很多动态sql。 其实我们可以去使用;当然我们也可以选择不用,自己写,自己用; 如果想用逆向工程提供的sql,怎么用? 
- 
 我们发现,帮我们生成了这么多方法,基本上单张表的所有操作都有。 一般情况,多张表的操作都是对应具体的业务逻辑。 我们写代码的时候,尽量把复杂的多张表的操作变成n个单张表的操作。 如果你觉得很复杂,没有办法拆,自己写一个方法,自己写对应的sql。然后调用自己的sql语句就可以了。 一、 调用dao中的一个方法 
  - 统计Employee 中的总人数 - 可以顺着写,也可以倒着写 - controller ---service----dao - dao----service----controller - service 代码: 
- 
 dao 代码: 不用写了 逆向工程帮我们生成了。 controller 代码:  测试成功 
  
- 
意味着 controller 调用了 service, service 调用了 dao 问题: controller 可以实例化, service 也有实现类。但是dao 没有实现类 dao没有实现类,为什么还可以调用? 
  - 这个类 扫描 接口,动态生成 接口的实现类。 - 所以我们的service 调用的都是 MappserScannerConfigurer 生成的接口的实现类 - 然后根据实现类找对应的 sql映射文件的 sql语句。 - 此方法的具体使用: 
  - 如果参数为 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。
 
------------恢复内容结束------------
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号