MVC:
(1)什么是MVC?
model vies controller
一种软件架构模式,主要思想是,将一个软件的组成部分划分成三种不同的类型模块:分别是
模块(封装业务逻辑)、视图(表示逻辑)、控制器(流程控制逻辑)
模型,负责业务逻辑:
业务数据的加工规则以及保障
业务逻辑能够正常执行所添加的一些基础服务,比如事务、安全、日志、性能等等。
视图,表示逻辑:
业务数据的展现以及用户操作的界面。
控制器,负责流程控制:
视图向控制器发送请求,控制器依据一定的规则,调用对应的模型来处理请求;
模型处理的结果发送给控制器,控制器选择合适的视图,生成相应的界面,提供给用户。
(2)MVC的优点:
a,可以实现模型的共享,即一个模型可以被
多个不同的视图来调用,模型产生的数据,也
可以由不同的视图来展现(模型的复用)。
b,方便测试(比如在web应用当中,如果将
业务逻辑写在servlet当中,必须启动服务器,
重新部署,才能测试,如果写在java类当中,则
可以直接测试)。
(3)在web应用当中,如何应用mvc?
模型:
使用java类或者容器管理的bean(比如
ejb容器管理的ejb,spring容器管理的
javabean)来实现。
视图:
jsp(html,css,js,少量的java代码)
控制器:
servlet/filter来实现。
视图向控制器发送请求,控制器分析请求,调用
模型来处理,处理的结果返回给控制器,由控制器
选择一个合适的视图生成对应的界面展示给用户。
mybatis:
<deleteid="delMore">
delete from t_user where u_id in(
<foreach collection="ids"item="id" separator=",">
#{id}
</foreach>
)
</delete>
<delete id="batchDeleteUserBean">
delete from t_user where id in
<foreach collection="list" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
xml文件的内部关联和外部调用:
<!-- xml文件直接调用,外部用session调用 -->
<association property="wife" column="id" select="com.lovo.my.dao.IWifeDao.findWifeBeanByHusband" javaType="WifeBean"/>
<!--javaType 定义一个转换类型,传入的wife对象转换为wifeBean类型-->
<!-- 所有的关联查询中,column=""这一部分,一定是后面方法所需要的 -->
<association property="husband" column="fk_husband" select="com.lovo.my.mapper.IHusabandBean.findHusbandBeanById" javaType="HusbandBean"></association>
<!-- 自定义映射关系 -->
<resultMap type="UserBean" id="userMap">
<result property="id" column="id" />
<result property="userName" column="user_name"/>
<result property="password" column="password"/>
<result property="sex" column="sex"/>
<result property="salary" column="salary" javaType="Inter" jdbcType="Double" />
</resultMap>
<!-- one2one关联查询,方式1 -->
<association property="husband" javaType="HusbandBean">
<result property="id" column="hid" javaType="java.lang.Integer"/>
<result property="husbandName" column="hhusband" javaType="java.lang.String"/>
</association>