每一年都奔走在自己热爱里

没有人是一座孤岛,总有谁爱着你

Mybatis学习笔记(一)——传统jdbc操作的不足

Mybatis学习笔记(一)

何为框架?

  • 三层架构

    • mvc:web开发中,使用mvc架构模式,m:数据模型,v:视图,c:控制器

      • c控制器:接收请求,调用service层,显示请求的处理的结果,如:servlet作为控制器
      • v视图:jsp,html,展示请求的处理结果,将m中的数据显示出来
      • m数据:来自数据库,文件,或者网络
    • mcv的作用:

      • 实现解耦合
      • 让mvc分层使系统扩展性更好,更易维护
    • 三层架构:

      • 界面层(视图层):接收用户的请求,调用service,显示请求的处理结果,包含jsp,html,servlet等,对应的包controller
      • 业务逻辑层:处理业务逻辑,使用算法处理数据,将数据返回给界面层,对应于service包
      • 持久层:访问数据库或文件或网络对应于dao包

      用户访问--->界面层--->业务逻辑层--->持久层--->数据库

    • 优势:结构清晰,耦合度低,分工明细,可维护性高,有利于标准化,有利于逻辑复用

  • 三层架构模式和框架

    • 界面层--SpringMVC
    • 业务层--Spring
    • 持久层--Mybatis
  • 框架(framework):

    • 可重用的、应用骨架、模板,方便用于开发,可升级,改造
    • 解决的问题:
      • 实现技术的整合
      • 提高开发效率
  • Mybatis解决的问题

    • 传统的JDBC操作流程

      //加载配置文件
      InputStream in = Jdbc_Utils.class.getResourceAsStream("pro.properties");
      Properties properties = new Properties();
      properties.load(in);
      url = properties.getProperty("url");
      user = properties.getProperty("user");
      password = properties.getProperty("password");
      Driver = properties.getProperty("Driver");
      //注册驱动
      Class.forName(Driver);
      //获取连接
      connection = DriverManager.getConnection(url, user, password);
      String sql = "select * from user where username = ? and PASSWORD = ?";
      //创建用于执行sql语句的statement
      preparedStatement = connection.prepareStatement(sql);
      preparedStatement.setString(1,usermame);
      preparedStatement.setString(2,password);
      //获得结果集
      res=preparedStatement.executeQuery();
      //使用结果集
      while(res.next){
          res.getXxx(Xxx);
      }
      //关闭资源
      res.close();
      preparedStatement.close();
      connection.close();
      
    • 优点:直观,缺点:操作繁琐,重复,除了核心sql语句外,消耗大量时间重复工作

  • Mybatis框架概述:

    • 一个持久层框架,减轻JDBC的复杂性,#专注于SQL语句的处理#
    • 从xml或注解中获取sql语句,将结果集ResultSet转换为java对象
    • 关闭资源
    • 将sql语句与java代码解耦合
    • 底层仍然是JDBC
posted @ 2020-12-07 20:25  雨下整夜~  阅读(104)  评论(0)    收藏  举报