第一章 MyBatis基本概念

1. 什么是框架

是一套规范,可以理解成半成品软件,开发者在它基础上进行使用。

2. 框架的作用

封装了一些冗余重用率低的代码,使用反射与动态代理机制实现代码的通用性。

3. 常见的框架

  • 表现层
a. Struts2
b. Spring MVC
  • 持久层
a. Hibernate
b. Spring JDBC
c. Mybatis
  • 全栈
a. Spring

4. Mybatis

4.1 出现背景

4.1.1 传统的JDBC操作

    @Override
    public User userLogin(User user) {
        //创建QueryRunner的对象
        QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
        //创建sql语句查询表中是否存在该用户
        String sql = "select *from `lagou_user` where name=? and password=?";
        User   resultuser=new User();
        try {
            resultuser = qr.query(sql, new BeanHandler<User>(User.class), user.getName(),user.getPassword());
            if (resultuser==null){
                return  null;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return resultuser;
    }

可能出现的问题

  • a. 数据库频繁的创建连接、关闭连接,造成系统资源浪费
  • b. 在进行curd操作中有许多sql语句硬编码问题,sql语句的改变需要重新部署项目
  • c. 查询得出的结果需要手动封装到相对应的Java Bean对象

4.1.2 解决的方案

针对上述的问题,提出一些解决思路

  • a. 针对硬编码的sql语句抽取到xml配置文件中
  • b. 采用配置文件配置数据库,使用数据库连接池进行连接资源
  • c. 使用反射、内省等底层技术,自动将实体类和表中的属性字段互相映射起来

4.2 Mybatis简介

是一个基于ORM的半自动轻量型的持久层框架,对使用JDBC操作数据库进一步封装,让开发人员只关注SQL语句本身;
主要完成了驱动注册、创建连接、创建curd声明、手动设置参数、结果检索等繁杂的代码编程。

半自动与全自动

本质区别:需不需要编写SQL语句,全自动的话就是框架可以自动生成SQL语句,例如Hibernate

缺点:全自动由于自动生成SQL语句,无法进行SQL语句的优化,数据量大的时候容易出现慢查询

轻量型

本质:启动加载消耗系统资源的多少。

4.3 ORM思想

全称 Object Relational Mapping,对象关系映射

  • Object:实体对象,就是程序中的一个Java Bean
  • Relational:关系型数据库的数据结构,数据库中的一张表
  • Mapping:映射,通过XML或者注解将实体对象与表中的结果对应起来

4.3.1 作用

将实体变化转为SQL脚本,通过执行脚本继而改变数据表,从而达到映射的作用

4.4 Mybatis作用

Mybatis就是采用ORM的思想,对JDBC进行封装,屏蔽了JDBC API底层访问的实现细节,使得开发人员不需要和JDBC API进行打交道,就可以完成数据库的持久化操作。

第二章 MyBatis快速入门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。