DataSource
mybatis与Spring整合
事务加载业务层上面
开启事务驱动
上面都是声明式开启事务
图书管理系统
命名规范:
- java命名规范:驼峰命名法类:大驼峰变量,属性名.方法名:小驼峰
- 常量使用下划线分割:全大写,单词与单词之间下划线分割
- 数据库命名规范:常用命名规范:下划线分割单词与单词之间下划线分割
加实体类:
加lombok依赖 Book类加@Data
加mapper接口:
char类型对应的java类型时String类型
包装类实现了Serlizable接口
使用继承接口 (继承时继承接口,接口不是实现接口)
xml配置
修改(ID不能改以外)
根据ID删除
使用ResultMap进行映射
根据Id进行查询
全部查询
mapper搞定
写service(基于接口进行类的隔离)
需要事务(基于xml的生成式事务或者基于注解的编程式事务)
实现添加
业务层要经行数据的转换
map不访问boolean sql得到的永远的是收影响行数
基于声明式的注解事务
Spring与Web整合
交给Spring容器管理,床啊金一个监听器,当tomcat启动时创建,
基于beans要扫描service里面的注解
SpringMvc
spring不需要整合SpringMvc 后者是前者的一个子模块 无需整合
基于mvc注解驱动开发
1.使用注解的处理器适配器,注解的处理器映射器,不需要再SpringMVC的配置文件进行配置
2.处理器类不需要实现任何接口或者继承某些类,处理请求的方法,就是一个处理器,包含这些方法的类 称为Controller类,处理请求的方法任意的,个数任意,方法名任意,返回值任意,参数是任意的
在springMvc的配置文件当中加入
<mvc :annotation-driven/ >
加入命名空间mvc
MVC提供的注解
- @RequestMapping注解请求映射,给处理请求的方法绑定一个可以访问的url
- @RequestBody注解
- @ReponseBody注解
- ......
配置视图解析器(通过逻辑视图名去找物理视图,默认的跳转方式是转发)
SpringMvc依赖找(视图找包)
InternalResourceViewResolver
加style、script文件
没登陆不可以访问
weapp目录下是公共访问 要私有访问->web-inf,它内部的资源浏览器不可以直接通过重定向方式直接访问,但是可以通过转发的方式进行一个访问
数据展示需要有控制
cart.html特殊设置
服务器报错:
加一个日志输出
控制台中红色输出的是tomcat 黑色的是日志
项目的index.jsp可以访问 但是你web-inf下的index.js不能被浏览器直接访问到
加入登陆注册页面到项目中(可以直接访问)
使用绝对路径
讲课
@RequestMapping注解
处理器绑定url
value/path:绑定的url,默认值:方法名作为url
请求方式 -> 原先servlet的doget和doPost
只能处理POST请求
会报错405错误
既可以处理POST请求 又可以处理GET 请求
@RequestMapping提供扩展注解
- GetMapping 处理请求方式:GET
- @postMapping注解 处理post请求
- @deleteMapping 处理delte请求
- @PutMapping 处理put请求
method:设置处理器方法能处理的请求方式,默认值:处理任何请求方式
params:限制请求参数的条件
不仅可以加在方法上面(表示url) 可以加在方法上 -> ()
窄化请求
Controller类
1.Controller类方法的返回值类型
-> 返回modelandview
ModelAndView:
往request域添加数据,设置逻辑视图名
经过视图解析器,找物理视图,转发的方式
String
逻辑视图名 -> 经过视图解析器 -> 找物理视图名 通过转发的方式
不返回 void
经过视图解析器到test1.do (访问test2.do)
所以不能经过视图解析器
-> forward:"资源路径" -> 不经过视图解析器,那么紫资源路径不是拼接的 资源会是完整的
return "forward:/test/test1.do"
字符串 逻辑视图名 -> 经过视图解析器 -> 找物理视图名 通过转发的方式
转发到指定资源(可以是jsp或者处理器)
重定向到指定资源(可以是jsp,处理器)“redirect :资源路径“
其他数据类型
只作为数据返回,配合ResponseBody
包括:
- java提供简单数据类型
- 自定义类类型
- 集合类型