2024-12-22  阅读(245)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1974711873

回答

Mybatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。

Mybatis 简化了 JDBC 代码操作,它通过 XML 或注解配置将原始类型、接口和 Java POJO(Plain Old Java Objects)映射为数据库中的记录。

扩展

Mybatis 优点

  1. 半 ORM 框架,Mybatis 内部封装了 JDBC 操作,研发人员仅需关注 SQL 本身。
// 1. 加载配置文件
Properties pro = new Properties();
pro.load(new FileReader("resource/jdbc.properties"));

// 2. 获取配置文件中连接数据库的信息
String url = pro.getProperty("url");
String user = pro.getProperty("user");
String password = pro.getProperty("password");
String driver = pro.getProperty("driver");

// 3. 加载数据库的驱动
Class.forName(driver);

// 4. 创建数据库的连接
Connection conn = DriverManager.getConnection(url, user, password);

 // 5. sql 语句
String sql = "select * from t_user where username=? and password=?";

// 6. 创建执行sql的对象
ps = conn.prepareStatement(sql);
// 7. 给 ?赋值
ps.setString(1, username);
ps.setString(2, password);
// 8. 执行sql
ResultSet rs = ps.executeQuery();
// 9. 如果查询出数据,则返回该条数据
if (rs.next()) {
    Admin admin = new Admin();
    admin.setUsername(rs.getString("username"));
    admin.setPassword(rs.getString("password"));
    return admin;
// 10. 否则返回空
} else {
    return null;
}
  1. 灵活性,Mybatis 将 SQL 写在 XML 或注解中,解耦 SQL 语句与业务代码,。
  2. 兼容性,Mybatis 基于 JDBC 连接数据库,故 JDBC 支持的数据库,Mybatis 同样支持。

Mybatis 不足

  1. 代码冗余,维护大量 Java POJO 对象与数据库字段映射。
<resultMap id="userMap" type="com.prospect.model.User">
   <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="age" property="age"/>
    <result column="sex" property="sex"/>
</resultMap>
  1. 可移植性差,Mybatis 直接使用 SQL 操作数据库,SQL 语句强依赖数据库,导致数据库移植性差。

Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。

它的内容包括:

  • 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
  • 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
  • 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
  • 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
  • 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
  • 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
  • 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
  • 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw

目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:

想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询

同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。

阅读全文