问题?SSM(springmvc+spring+mybatis)整合过程
一、SSM框架比较S2SH框架的优缺点比较
站在个人使用这两个框架的观点儿上来说的话,我觉得这个不能定死的说,常用的S2SH,SpringMVC等,还可以考虑jFinal。
首先说S2SH,这个是用的比较多的,特别是在中小型项目中,针对大型项目就不行了,是Struts和hibernate过于庞大,过于重量级,项目大了之后配置文件多的也是麻烦事,配置文件多了之后一方面不好操作,另外比较蛋疼的是没法断点调试,特别是对底层数据库优化就做不到了。
至于SpringMVC.这个相对于S2SH来说比较轻量级的框架,数据库操作层可以选择ibatis(被Google收购后就叫MyBatis了,开源的),统一管理sql甚是方便,采用纯注解更好,所以在这点儿上来说优于S2SH,可以对数据库进行优化。
再说jFinal,这个是刚出来不就得新框架,个人觉得是个很逆天的框架,零xml文件(有个数据库配置的txt文件)所有东西启动需要加载的都在java类里面(****Config.java)调试神马的就太方便了以至于你能在启动的时候就调试(比如加载数据源开始),特别的轻量级 很好用。
至于mybatis与hibernate,各有千秋吧,当然这是根据我自己的理解:
1.两者相同点:
Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由
SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,
SessionFactory,Session的生命周期都是差不多的。
Hibernate和MyBatis都支持JDBC和JTA事务处理。
2.两者不同点儿:
Mybatis优势:MyBatis可以进行更为细致的SQL优化,可以减少查询字段。MyBatis容易掌握,而Hibernate门槛较高。这是因为mybatis是直接操作底层数据库,而hibernate则是通过封装了jdbc,重量级的。不能优化sql语句。
Hibernate优势
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
springmvc从设计的角度来说,更加清晰。即使我们去比对strurs2的原理图和springmvc的原理图。struts2的原理图远不如springmvc那么清晰。
二、整合过程
看看整个流程结构图:
1. 创建表(包括关联关系—这个关联关系不一定要有,只是列名要有,并且和关联表列名相同)
2. 创建PO实体对象
3. 创建mapper映射文件
4. 创建personDao接口及实现类
5. 创建service接口及实现类
6. 创建controller
7. 创建列表页面jsp
8. 配置sqlMapConfig.xml
9. 配置beans.xml
10. 配置springmvc-servlet.xml
11. 配置web.xml
12. 发布并测试
当然整个顺序是可以改变的,只要逻辑没问题即可:具体实现:
1. 创建表,web工程,导入jar包
(包括关联关系—这个关联关系不一定要有,只是列名要有,并且和关联表列名相同)
user表
book表
新建名为SSM的web工程:
导入jar包,(mybatis包及依赖,spring(springmvc包及依赖包),数据库驱动包)
aopalliance-1.0.jar
asm-3.3.1.jar
cglib-2.2.2.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
ehcache-core-2.6.5.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
junit-4.9.jar