ssm
2023-03-21 23:30:21 1 举报
AI智能生成
ssm框架知识点思维导图详细
作者其他创作
大纲/内容
mybatis
认识mybatis:持久化
什么是持久化
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
理解:将数据储存起来,用的时候拿出来,eg:冷藏
为什么需要持久化
- 不想丢掉一些对象
- 内存太贵
- 内存太贵
第一个mybatis程序,要会熟练写
新建一个普通maven项目
删除src
导入maven依赖
mysql-connector-java
mybatis
编写mybatis的核心配置文件
编写mybatis工具类
获取sqlsession对象
仅在mybatis中,开启事务在工具类中,return sqlSessionFactory.openSession(true);
编写pojo
编写dao,也就是mapper
UserMapper
UserMapper.xml
测试
new sqlsession
调用方法
关闭sqlsession
crud
配置
数据库连接池
概念
负责分配,管理,释放数据库连接,他允许应用程序重复使用一个现有的数据库连接,不必再去重新建立
理解:可以理解为路由器
种类
c3p0
Druid
DBCP:tomcat使用的连接池组件
事务管理器
作用
对一系列的数据库操作进行统一的提交或回滚操作,事务对于需要操作数据库的应用来说非常重要
种类
mybatis默认的:JDBC
resultMap:结果集映射
多对一
多个学生对应一个老师
一对多
老师教多个学生,老师类中属性包含学生类集合
Mapper.xml
处理方法
按照结果嵌套处理(更简单)
按照查询嵌套处理
Log4j2+SIf4j
理解
Log4j2为日志框架,SIf4j为日志门面
便于生成日志信息,debug
实现
添加依赖
代码实现:在要增加日志的代码下面添加日志输出代码
分页
limit(重点)
使用Mybatis实现分页,核心SQL
select * from mybatis_user limit #{startIndex},#{pageSize}
startIndex:第一页第一行的元素下标,从0开始 pageSize:一面的元素个数
RowBounds分页
注解开发
动态SQL(后面总体练习sql时详细学)
什么是动态sql
动态SQL就是 指根据不同的条件生成不同的SQL语句,sql语句的拼接,加了判定条件
如何使用
if
where
set
spring
Spring概述
Spring就是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的框架
IOC理论推导
控制反转
IOC是一种思想,不是技术
主动创建改为被动接受,由ioc容器去创建对象
本来是业务层控制要创建什么对象,现在增加了一个中间件ioc容器,用户需要什么就去取什么,
eg:没用ioc思想----业务层调dao层,通过new的方式创建实现类的对象(动物接口,狗实现了该接口),测试,new获取业务层实现类对象,但现在增加一只猫的实现类,则业务层要将new狗的对象改为猫的,不建议这样修改底层代码
用ioc思想:业务层调dao层,通过set注入的方式代理动物接口,在通过动物接口对象创建狗的对象,测试,通过new获取业务层对象,在通过set方法获取狗的对象,当增加猫的实现类时不需要更改业务层代码,只需要自己用set获取该对象
好处
解耦合
实现:spring在创建对象时用了DI技术
DI-Set..(重点)
方式
setter注入
构造器注入
实现
动态代理
反射
AOP
切面编程
使用
导入aop织入包
底层
代理模式(找个中间人)
静态代理
代理实现类(setter实现类,狗)
不灵活,每增加一个动物实现类都要更改setter
动态代理(实现aop)
代理接口(setter接口,动物)
注解开发spring
整合mybatis:事务
ACID原则
原子性
一致性
持久性
隔离性
声明事务
springmvc
springmvc的执行流程(重点)
结果的跳转方式
重定向
转发
数据如何处理
@RequestParam("name") 和mybatis中的@Param("")功能类似,习惯,必写
如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null
前端:<input id="name0" onblur="n1()" name="username">
后端:public String login(String username, String password, HttpSession session){
- / : 过滤除.jsp的文件
- /* :过滤所有
- /* :过滤所有
json
是一种轻量级的数据交换格式,目前使用特别广泛。就是一种格式,也可以自己用字符串拼接
后端传json时别忘记乱码解决
jar
jackson
fastson
ajax
使用Ajax技术网页应用能够快速地将增量更新呈现在[用户界面]上,而不需要重载(刷新)整个页面不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术
jQuery封装了
$---->jquery
使用时导入该包 <script src="../static/js/jquery-3.6.0.js"></script>
restful风格
@GetMapping("/c/{a}/{b}")
public String test(@PathVariable int a, @PathVariable int b, Model model)
public String test(@PathVariable int a, @PathVariable int b, Model model)
0 条评论
下一页