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。
------------恢复内容结束------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了