Mybaits
它是一个持久层框架,不是一个完全的ORM框架,代表sql语句还是需要我们手动去写,有输入参数映射,输出结果映射
Mybatis的执行过程
1.配置mybatis配置文件,叫做SqlMapConfig.xml(名字不固定)
2.通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂
3.通过SqlSessionFactory创建sqlSession,SqlSession是面向用户的接口(提供了很多操作数据库的方法)
4.调用SqlSession方法操作数据库
5.关闭SqlSession
Mybatis开发dao,使用mapper代理开发
需要我们编写mapper接口,我们在编写mapper.xml和mapper.java需要遵守开发规范
1.mapper.java的名字必须和mapper.xml名字一致
2.mapper.xml中namespace就是写的mapper.java全类名
3.mapper.xml中id和mapper.java方法名一致
4.mappe.xml中parameterType指定输入参数类型必须和mapper.java方法参数类型一致
5.mapper.xml中的resultType指定输出结果类型必须和mapper.java方法返回类型一致
SqlMapConfig.xml可以配置properties属性、别名、mapper加载
#{}和${}的区别
#{}表示一个占位符,接受输入参数,参数类型:简单类型,pojo,hashmap
如果接受简单类型的,#{}可以写value或其他,名称
如果接受pojo对象值,通过OGNL读取对象属性值,通过属性.属性...方式获取对象属性值
${}代表的是一个拼接符号,会引起sql注入,不建议使用,接受输入参数,参数类型:简单类型,popo,hashmap
如果接受简单类型的,#{}可以写value
如果接受pojo对象值,通过OGNL读取对象属性值,通过属性.属性...方式获取对象属性值
输出映射
resultType:查询到的表列名和映射的pojo的属性名一致,才能完成映射
resultMap:如果查询到的列名和映射的pojo的属性名不一致,可以通过resultMap设置列名和属性名之间的别名完成映射
动态sql:通过表达式进行判断,对sql进行灵活拼接
if(判断)
Where
Foreach:如果向sql传递的是一个数组,使用它进行解析sql片段
Spring框架
1.它是一个开源的框架
2.两大核心
IOC:控制反转 (底层原理)
Aop:面向切面编程:扩展功能不是修改源代码来实现,而是通过配置文件的方式完成增强
3.Spring是一站式框架,spring在三层架构中,每一层提供不同的解决技术。
IOC
可以实现配置文件方式,注解方式实现IOC
常用属性:
ID属性
Class
Scope属性,作用域
默认是单例的。Singleton
多例:prototype
属性注入:
1.set注入
2.有参构造器注入
注解方式实现IOC
1.开启注解扫描
2.注解创建对象
这四个都用在类上面,目前这四个注解功能一致
@component
@service service层
@controller web层
@repository 持久层
3.注入属性注解
@Autowired
@resource(name=“”)创建对象的ID值 也就是@component属性value的值
AOP
1.Aop:面向切面编程,扩展功能不是通过源代码实现
3. aop采用横向抽取机制
4. 底层使用动态代理实现
Spring实现aop
在spring:里面继续逆行aop操作,使用aspectj实现
使用aspectj实现aop有两种方式
1.使用xml配置方式
2.使用注解方式
使用表达式来配置切入点
Execution(<访问修饰符><返回类型><方法名>(<参数>))
Execution(*com.hpe.service.*(..))
事务
1.什么是事务
2.事务的四大特效
3.隔离级别
4.Spring操作事务
xml配置 注解
都要配置事务管理器