JavaWeb开发知识总结(内省,MVC,事务)

JavaWeb开发知识总结(内省,MVC,事务)

1. 内省技术概述

1.1 JavaBean类

JavaBean类是符合特定要求的Java类.

​ JavaBean类需要符合以下要求:

  1. 提供无参的构造方法;
  2. 属性私有化;
  3. 属性提供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):

# 原子性: 强调事务中操作不能分割开
# 一致性: 强调事务执行前后,数据的完整性要一致
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值