博客
关于我
MyBatis官方文档——Java API部分
阅读量:717 次
发布时间:2019-03-21

本文共 2681 字,大约阅读时间需要 8 分钟。

Java API: 深入探索 MyBatis 3 的核心功能

引言

MyBatis 是一款功能强大的 Java 库,它通过简化 SQL 调用,使开发者能够在 Java 应用中高效地与数据库交互。与传统的 JDBC 体系相比,MyBatis 提供了更加简洁、高效的 API,支持事务管理、缓存机制、动态 SQL 分析等高级功能。

MyBatis 的目录结构

在深入 MyBatis API 之前,了解典型的项目目录结构至关重要。以下是推荐的目录布局:

/my_application/
├── bin/
├── dev/
│ └── lib/
│ └── mybatis*.jar
├── src/
│ └── org/
│ └── myapp/
│ ├── action/
│ ├── data/
│ ├── model/
│ ├── service/
│ ├── view/
│ └── properties/
├── test/
│ └── org/
│ └── myapp/
│ ├── action/
│ ├── data/
│ ├── model/
│ ├── service/
│ └── view/
└── web/
└── WEB-INF/
└── web.xml

获取 SqlSessionFactory

MyBatis 的核心是 SqlSessionFactory,它用于创建 SqlSession 实例。以下是获取 SqlSessionFactory 的主要方法:

  • 从 XML 文件加载配置

    InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    SqlSessionFactory factory = builder.build(inputStream);
  • 使用 Properties 参数

    Properties props = new Properties();
    props.put("mybatis.environment", "development");
    SqlSessionFactory factory = builder.build(inputStream, props);
  • 手动配置 Configuration 对象

    Configuration configuration = new Configuration(environment);
    configuration.setLazyLoadingEnabled(true);
    configuration.setEnhancementEnabled(true);
    configuration.getTypeAliasRegistry().registerAlias(Blog.class);
    ...
    SqlSessionFactory factory = builder.build(configuration);
  • SqlSession 的功能

    SqlSession 是 MyBatis 中执行 SQL 操作的核心接口,提供了丰富的方法来执行 CRUD 操作、管理事务,并通过映射器接口实现复杂的 数据操作。

  • 执行 SQL 语句

    int insert = session.insert("insert into table values(#{name})");
  • 事务控制

    try {
    session.insert("insert into user values(#{user})");
    session.commit();
    } catch (SqlException e) {
    session.rollback();
    }
  • 本地缓存: MyBatis 支持本地缓存,通过 clearCache() 方法清空缓存。

  • 映射器接口

    public interface AuthorMapper {
    Author selectAuthor(int id);
    List
    selectAuthors();
    Map
    selectAuthorsMap(int id);
    int insertAuthor(Author author);
    int updateAuthor(Author author);
    int deleteAuthor(int id);
    }
  • 动态 SQL 构建

    MyBatis 3 提供了基于注解的动态 SQL 构建功能,允许开发者自定义复杂的 SQL 操作。常用的注解包括:

  • @Param:自定义参数名称。

    public User getUserById(@Param("id") Integer userId);
  • @SelectKey:在插入、更新操作前或后执行序列值获取。

    @SelectKey(statement = "call next value for user_seq", keyProperty = "userId", before = true)
    int insertUser(User user);
  • @Flush:批量执行缓存的 SQL 语句。

    @FlushList
    void flush();
  • 最佳实践

    • 遵循推荐目录结构:如上所述的目录布局有助于项目的维护和高效开发。
    • 合理使用缓存:优化本地缓存设置,避免重复查询和性能遗ENAME。
    • 注重代码清晰度:使用映射器接口明确 SQL 操作,提高代码可读性和维护性。
    • 定期测试和优化:通过单元测试确保 SQL 执行的正确性,同时持续优化性能表现。

    通过以上知识,您已经对 MyBatis Java API 有了全面的了解。接下来,将进一步探索 MyBatis 的映射器配置和高级功能,如 SQL �/extensions 及事务管理。

    转载地址:http://jsrrz.baihongyu.com/

    你可能感兴趣的文章
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>
    Node 裁切图片的方法
    查看>>
    Node+Express连接mysql实现增删改查
    查看>>
    node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
    查看>>
    Node-RED中Button按钮组件和TextInput文字输入组件的使用
    查看>>
    Node-RED中Switch开关和Dropdown选择组件的使用
    查看>>
    Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中使用range范围节点实现从一个范围对应至另一个范围
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
    查看>>
    Node-RED中建立TCP服务端和客户端
    查看>>
    Node-RED中建立Websocket客户端连接
    查看>>