ssh框架了解吗
我才刚自学ssm没多久,听到这个一脸懵逼 ,结果查了一下,发现其实就可以说是ssm的前生,具体就是struts+spring+hibernate,集成SSH框架的系统从职责上分为四层:表示层,业务逻辑层,持久层和域模块层。Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
hibernate
原始的不用框架的时候就JDBC连接
一个事务过程:
1.编写sql语句
2.预编译
3.设置参数
4.执行sql
5.封装结果
这和框架有什么区别呢?首先功能单一,其次sql代码放在java语句中需要优化时,由于高度耦合会使得项目需要重新编译运行等,这当然是不行的。
那么使用hibernate(全自动框架Object Relation Mapping),通过持久化数据对象,进行对象关系的映射,并以对象的角度来访问数据库。同时因为全自动就不需要知道jdbc的操作流程,不用写sql语句,只要写javaBean对象就可以了。但是缺点明显,框架自带的sql功能单一,无法进行优化,但是hibernate又自带了HQL语句,与数据库的SQL语句相似,但不同的是HQL语句在面向对象编程的角度上,通过Session的createQuery方法创建户一个query对象,由这个对象来完成对数据库的增删改查等操作。这导致优化变得比较难。
因此出现 iBatis,也就是MyBatis框架,在这一步就是把sql语句从框架中分离了出来,和框架解耦合,增加灵活性。
MyBatis框架属于持久层,支持SQL查询,存储过程和高级映射的框架,通过XML配置和注解方式完成配置和映射。
Mybatis的循序渐进学习流程:初始的DAO层开发,进一步是mapper代理开发(官方推荐)。
Mybatis框架学习
第一步需要配置mybatisConfig.xml,比较简单,三部分:环境配置,事务配置和数据库配置。
最下方的mapper里指定DAO层开发的配置文件或者mapper代理开发时的class名。
初始的DAO层配置
配置命名空间和下方具体增删改查中的id="delByTestId"组成唯一标识。
parameterType是接收的参数类型,这里有一点需要注意的是画圈的地方,
有两种
# {
value