JavaWeb开发知识总结(内省,MVC,事务)
1. 内省技术概述
1.1 JavaBean类
JavaBean类是符合特定要求的Java类.
JavaBean类需要符合以下要求:
- 提供无参的构造方法;
- 属性私有化;
- 属性提供public修饰的get和set方法.
1.2 内省技术
内省就是用来获取JavaBean类的属性或属性的get/set方法.
注意事项: :javabean中的属性是通过get或set方法确定的,只要有这两个方法就是javabean的属性,而不只包含自定义属性.
内省机制的原理:
通过内省机制获取javabean对象的属性,通过属性的名字和被封装数据map集合中key相同时,通过反射调用属性的set方法将map集合中对应的值存储到javabean对象对应的属性中.使用的案例代码如下:
/**
* 封装BeanUtils方法
* Map集合key是String,value是String[]类型
* @param object javabean对象
* @param map 要封装的数据
*/
public static void _populate(Object object, Map<String, String[]> map) {
// 获取javabean类的描述类
BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass());
// 获得描写javabean的属性描述的PropertyDescriptor数组
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
// 遍历属性的数组
for (PropertyDescriptor pd : pds) {
// 当map集合中存储的key和javabean中属性名相同时
// 调用javabean中属性对应的set方法进行赋值
if(map.containsKey(pd.getName())) {
// 通过反射获取javabean类的set方法
Method method = pd.getWriteMethod();
// 获取Map集合对应value中数组的第一个数据
Object obj = map.get(pd.getName())[0];
// 执行该属性的set方法
method.invoke(object, obj);
}
}
}
注意事项: 内省机制在将标签中数据封装到javabean对象对应的属性中时是通过名称进行匹配的,因此要求jsp页面中提交数据中的参数名需要和javabean对象中属性名称对应一致.
2. MVC设计模式
MVC设计模式是指JavaWeb开发的一种设计思想,其实指的是V(JSP)+C(Servlet)+M(JavaBean)
开发模式 ,M(Model)代表模型,V(View)代表视图,C(Controller)代表控制器.JavaEE开发分为三层结构:web层
,业务层
,持久层
,其中web层包含Servlet层和jsp层;MVC中的M对应是业务层和持久层,V对应的Web层的jsp层,C对应的web层中Servlet层.
3. 数据库事务
事务是指事务指的是逻辑上的一组操作,组成这组操作的各个逻辑单元要么一起成功,要么一起失败(同生共死).
3.1 MYSQL数据库中事务管理
MYSQL中开启事务:
-- 方式1.手动开启事务
start transaction; -- 开启事务
-- 多条sql语句;
commit/rollback; -- 提交或回滚事务
-- 方式2.设置一个自动提交参数
show variables like '%commit%'; -- 查看与commit相关参数.
set autocommit = 0; -- 将autocommit参数设置为OFF,不自动提交,当写完SQL语句需要手动提交事务. 0或者off均可
3.2 事务特性(ACID):
# 原子性: 强调事务中操作不能分割开
# 一致性: 强调事务执行前后,数据的完整性要一致