SSM&SSH整合

方案1:    
SpringMVC+SpringIOC/AOP+MyBatis
方案2:    
Struts2+SpringIOC/AOP+Hibernate

部门列表显示
方案1:
/list.do-->DispatcherServlet-->HandlerMapping
-->ListController-->DeptService-->DeptDao-->DEPT
-->ModelAndView-->ViewResolver-->/list.jsp

1)搭建SSM
a.导入spring,mybatis,mybatis-spring.jar,驱动,dbcp
b.导入spring配置applicationContext.xml
2)实现上面设计的流程
a.先写DeptDao
-编写实体类Dept
-编写SQL定义文件DeptMaper.xml    -->定义dao层方法中的sql语句
-编写SQL映射接口DeptDao          -->写方法,操作数据库
-配置MapperScannerConfigurer     -->根据dao接口生成实现对象,写到applicationContext.xml文件中
b.再写DeptService
-编写Service
-注入DeptDao
c.再写ListController
-编写controller
-注入service
d.list.jsp
-引入jstl包
-使用EL+JSTL访问数据显示
e.配置MVC处理流程
-配置DispatcherServlet          -->在web.xml中配置
-配置HandlerMapping             --><mvc:annotation-driven />,写到applicationContext.xml文件中
-配置ListController             -->listController中添加注解:@RequestMapping("/list")
-配置ViewResolver               -->指明传送数据地址的 前后缀,写到applicationContext.xml文件中









方案2:
/list.action-->StrutsPrepareAndExecuteFilter
-->ListAction-->DeptService-->DeptDao-->DEPT
-->Result-->/list.jsp

1)搭建SSH环境
a.引入spring,struts2,hibernate,struts2-spring-plugin.jar,
spring-orm.jar,spring-web.jar,驱动,dbcp
b.引入spring配置文件applicationContext.xml,Struts配置文件struts.xml
2)实现设计的处理流程
a.先写DeptDao
-编写实体类Dept.
-在Dept.java编写映射描述(注解)          -->在dept实体类中注解,指定关联数据库的表
-编写DeptDao接口及实现类                  -->在实现类中的重写方法中定义hql语句(String hql = "from Dept order by deptno";)
-配置DeptDao
<!-- Dao--HibernateTemplate--SessionFactory--DataSource -->
b.再写DeptService
-编写Service
-注入DeptDao
c.再写ListAction
-编写Action
-注入service
d.写list.jsp
e.配置Struts2+Spring处理流程
-在web.xml配置StrutsPrepareAndExecuteFilter
-配置ListAction(@Action,@Result)
-在web.xml配置ContextLoaderListener


3.MyBatis动态SQL
使用MyBatis提供的一套标签,动态在XML中构建一个SQL语句。(拼凑SQL语句)
<if test="..."></if>
<choose>
  <when test="">...</when>
  <when test="">...</when>
  <when test="">...</when>
  <otherwise></otherwise>
</choose>
<foreach>...</foreach>
<where>:     a.顶替一个WHERE关键词;b.可以过滤条件前面多余的and或or字符
<set>

条件:员工名、员工工资、员工入职时间
按钮:检索
select * from EMP where ENAME like ?
select * from EMP where SAL=?
select * from EMp where HIREDATE=?
...写不下去了

<table>
<c:if test="有记录">
  //foreach循环记录
</c:if>
<c:if test="没有记录">
 未找到记录
</c:if>
</table>
empno in (7356,7655)
原文地址:https://www.cnblogs.com/Alan0218/p/8472062.html