02-MyBatis入门

2、MyBatis

2.1、MyBatis概念

  • MyBatis是一款优秀的持久层框架,用于简化JDBC开发
  • MyBatis是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了goole code,并且改名为MyBatis。2013年11月迁移GitHub
  • 官网

2.2、持久层概念

  • 持久层
    • 负责将数据保存到数据库的代码
  • JavaEE三层框架
    • 表现层、业务层、持久层

2.3、框架概念

  • 框架
    • 是一个半成品软件,是一套可重用、通用的、软件基础代码模型
    • 在框架的基础之上构建代码编写更高效、规范、通用、可扩展

2.4、JDBC缺点和MyBatis简化

  • JDBC代码编写示例

    • //2. 获取Connection连接
      String url = “jdbc:mysql:///db1?useSSL=false”;
      String uname = “root”;
      String pwd =1234”;
      Connection conn = DriverManager.getConnection(url, uname, pwd);
      // 接收输入的查询条件
      String gender = “男”;
      // 定义sql
      String sql = “select * from tb_user where gender = ?”;
      // 获取pstmt对象
      PreparedStatement pstmt = conn.prepareStatement(sql);
      // 设置?的值
      pstmt.setString(1,gender);
      // 执行sql
      ResultSet rs = pstmt.executeQuery();
      // 遍历Result,获取数据
      ArrayList<User> users = new ArrayList<>();
      while (rs.next()){
      //获取数据
      int id = rs.getInt(“id”);
      String username = rs.getString(“username”);
      String password = rs.getString(“password”);
      //创建对象,设置属性值
      User user = new User();
      user.setId(id);
      user.setUsername(username);
      user.setPassword(password);
      user.setGender(gender);
      //装入集合
      users.add(user);
      }
    • 缺点

      • 硬编码
        • 注册驱动,获取连接
        • SQL语句
      • 操作繁琐
        • 手动设置参数
        • 手动封装结果集
  • MyBatis优点

    • MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作

2.5、MyBatis入门

2.5.1、查询user表中所有数据

  • 步骤1
  • 步骤2
  • 步骤3
  • 小结

2.5.2、MyBatis核心配置文件

  • MyBatis核心配置文件的顶层结构如下所示
  • mapper标签
    • 如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载
  • typeAliases标签
    • 给自定义的实体类,让类使用更简单
  • PS
    • 配置各个标签时,需要遵守前后顺序

2.5.3、MyBatisX插件

  • MyBatisX是一款基于IDEA的快速开发插件,为效率而生
  • 主要功能
    • XML和接口方法相互跳转
    • 根据接口方法生成 statement
  • 安装
posted @   OnlyOnYourself-Lzw  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示