一. 项目中使用的技术
SpringMVC+MyBatis+Spring:SSM
sql+JS+XML(DOM/DOM4J解析)
二. SpringMVC
参数的传递
- 返回void类型和共享数据
request.getRequestDispatcher("页面路径").forward(request, response);
- 返回ModelAndView类型和共享数据
ModelAndView mv = new ....
mv.addObject(key, value)
- 返回String类型和共享数据(重点)
public String xxx(Model model){
model.addAttribute(key, value);
}
4:返回对象类型和共享数据
public 对象 xxx(){....}
- 简单类型参数和RequestParam注解
public xxx xx(String xx, Integer xx)
- 复合类型参数
public xxx xx(User xx)
- 接收数组或集合
public xxx xx(Long[] xx)
- 多对象封装传参(略)
页面的跳转
数据的共享
文件上传:
注意:enctype=“multipart/form-data”
JSON数据的使用:
三.MyBatis:
- mybatis的基本行为设置(延迟加载)
在MyBatis.xml里面配置
<!--开启延迟-->
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<!--按需加载:需要放在依赖对象的时候,再触发延迟加载-->
<setting name="aggressiveLazyLoading" value="false"/>
<!--
设置在访问对象中,clone方法的时候触发延迟加载
访问Object对象中equals/toString等不需要
-->
<setting name="lazyLoadTriggerMethods" value="clone"/>
</settings>
-
mapper映射文件:
编写SQL语句
resultType:
resultMap:当列名和属性名不一致的时候/当需要做关系映射的时候
动态SQL的标签:
where
if
foreach
set
trim(set/where) -
mapper接口
获取SQL语句的字符串很复杂,没有约束
传递的参数是使用Object类型来接收的,没有约束
mybatis会自动的使用动态代理为我们在内存生成mapper接口的代理对象
- Spring:
DI:依赖注入 setXxx()
IoC:将对象的创建交给Spring容器 new Xxx();
动态代理
AOP
系统管理:
部门
CRUD
查询:
建模
编写SQL
service
controller
@RequestMapper
数据共享(Model对象的使用)
返回一个逻辑视图名称:/WEB-INF/views/department/list.jsp
JSP
EL和JSTL
增加:
使用jQuery为元素绑定事件(click(function(){})
统一事件绑定:on(“click”,”选择器”,function(){}))
提交表单,将用户填写的数据提交到服务器
SpringMVC中的数据的封装方式
name:xxx
age:10
方式一:
saveOrUpdate(String name, Integer age)
方式二:
saveOrUpdate(User u)
更新:
数据的传递,后台数据的接收,执行业务查询,数据的共享,使用EL从作用域中获取数据
执行成功之后的跳转:使用URL重定向到一个Controller中去
“redirect:/department/list.do”
高级查询+分页:
在点击翻页的时候,将后台需要的所有的数据(高级查询的数据和分页相关的数据:currentPage+pageSize)提交过去
在mapper文件中,拼接条件