A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 旧里桃花七年醉 初级黑马   /  2019-6-13 13:50  /  722 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

## SSM框架第9天Mybatis第1天课堂笔记

### 1 spring mvc重点知识回顾

- spring与web集成

  - 导入坐标(spring-web.jar)
  - 配置监听器
  - 配置全局参数:applicationContext.xml

- springmvc的执行流程

- springmvc配置步骤:

  - 导入坐标
  - 在web.xml中配置DispathcerServlet
  - 编写Contoller
    - 使用@RequestMapping配置访问路径
  - 编写视图
  - 在spring-mvc.xml中配置视图解析器,扫描contoller
  - 完成测试

- springmvc请求和响应:

  - 响应:
    - 页面跳转(默认)
      - 直接返回字符串
      - 返回ModelAndView
    - 回写数据
      - @ResponseBody
      - 直接返回字符串
      - 返回集合和对象
        - 让spring‘mvc帮我们转换为json字符串
        - <annotatation-dirver/>
  - 请求:
    - key=value格式(默认)
      - 基本类型
      - pojo类型
      - 数组类型
      - 集合:表单提交集合
    - json格式
      - @RequestBody
      - pojo类型{"username":zzz,age:12}
      - 集合类型
    - 文件格式
      - 客户端三要素
        - type=file
        - post方式
        - enctype="multipart/form-data"
      - 服务器端步骤:
        - 导入坐标
        - 配置文件上传解析器
        - 在方法中用MultiPartFile接收

- springmvc拦截器

  - 作用
    - 拦截目标方法
    - 主要用于权限验证
  - 配置步骤
    - 编写一个类实现HandlerIntercepter接口
      - preHandle():在目标方法执行前
      - postHandle():在返回视图对象之前
      - afterCompletion():视图对象返回后
    - 在spring-mvc.xml中配置拦截器
    - 测试

- springmvc异常处理

  - 作用

    - 减少收到try catch
    - 统一的做一些操作:
      - 返回一些错误信息的视图
      - 记录日志

  - 实现方式:

    - 使用simpleExceptionResovler
      - 配置xml
    - 自定义异常处理器
      - 实现HandlerExceptionResovler接口

   

### 2 今日目标

#### 2.1 能够理解并运用Mybatis的核心配置文件和映射配置文件

- Mybatis概念:
  - 是一种持久层的框架
- Mybatis作用:
  - 不需要关系连接创建,销毁等操作,只关注sql本身就可以了
  - 可以讲入参和出参自动封装到具体的java对象中(很强)
  - 解耦:将sql语句从java代码中解放,用xml配置文件完成sql编写,可读性良好
- 核心配置文件标签:
  - environments defalut="" :数据源环境设置
    - environment
      - TransactionManager :JDBC
      - dataSource:POOLED 使用的mybatis内置的数据源
  - properties:引入properties配置文件
    - resource
  - typeAliases:设置别名
  - mapper:加载映射文件
    - resource:相对路径
    - url:绝对路径
    - class:设置映射类(注解开发Mybatis才使用)
    - package:扫包

#### 2.2 能够理解Mybatis的相关API

- 加载核心配置文件:Resources
- 使用SqlSessionFactoryBuilder创建SqlSessionFactory
- 使用SqlSessionFactory创建SqlSession
  - openSession() 默认不提交事务
  - openSession(boolean autoCommit)
- SqlSession执行相关sql操作
  - selectList("命名空间.id",参数对象)
  - selectOne("命名空间.id",参数对象)
  - update("命名空间.id",参数对象)
  - insert("命名空间.id",参数对象)
  - delete("命名空间.id",参数对象)
  - commit()
  - rollback()

#### 2.3能够完成Mybatis的快速入门Demo

- 步骤:

  - 导入坐标(mybatis,mysql,junit)
  - 创建表,实体对象
  - 创建映射xml配置文件
    - namespace:mapper文件的名字
    - 配置sql语句
  - 配置核心文件:sqlMapConfig.xml
    - 配置数据源
    - 加载映射文件,mapper
  - 完成测试:
    - 加载sqlMapConfig.xml
    - 创建SqlSessionFactory
    - 创建SqlSession
    - 执行相关sql操作

- 增删改查操作

  - 插入操作:

    - <insert>

    - 参数类型:paramterType="全限类名"

    - 占位符:#{参数对象的属性}

    - 获取插入后的数据的主键:

      - ```
        keyProperty="id" useGeneratedKeys="true"
        ```

### 3 上午总结

- Mybatis

  - 概念:mybatis是一种持久层的框架
  - 作用:
    - 自关心sql本身的编写,不考虑数据源等的创建
    - 解耦:把sql语句从java代码中解放,放在xml配置文件中,提高一个阅读性和便于修改
    - 能够将入参和出参封装成java对象。

- 入门demo步骤:

  - 导入坐标(mybatis,mysql,junit)

  - 创建表和实体

  - 编写映射文件userMapper.xml

    - namesapce:命令空间

    - id="findAll"

    - select,insert,update,delete

      - parameterType="全类名"

      - ResultType="全类名"

      - #{属性名}

      - ```
        keyProperty="id"
        useGeneratedKeys =true
        ```

  - 编写核心配置文件:sqlMapConfig.xml

    - 数据源
    - 加载mapper文件

  - 编写测试类:

    - 加载核心配置文件
    - 获取SqlSessionFactory
    - 获取SqlSession
    - 执行操作:
      - selectList("命名空间.id")
      - 更新操作需要提交事务

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马