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

本文共 2633 字,大约阅读时间需要 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 语句。

    @FlushListvoid flush();
  • 最佳实践

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

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

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

    你可能感兴趣的文章
    Linux下的系统监控与性能调优:从入门到精通
    查看>>
    LiveGBS user/save 逻辑缺陷漏洞复现(CNVD-2023-72138)
    查看>>
    localhost:5000在MacOS V12(蒙特利)中不可用
    查看>>
    logstash mysql 准实时同步到 elasticsearch
    查看>>
    Luogu2973:[USACO10HOL]赶小猪
    查看>>
    mabatis 中出现< 以及> 代表什么意思?
    查看>>
    Mac book pro打开docker出现The data couldn’t be read because it is missing
    查看>>
    MAC M1大数据0-1成神篇-25 hadoop高可用搭建
    查看>>
    mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
    查看>>
    Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
    查看>>
    MangoDB4.0版本的安装与配置
    查看>>
    Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
    查看>>
    mapping文件目录生成修改
    查看>>
    MapReduce程序依赖的jar包
    查看>>
    mariadb multi-source replication(mariadb多主复制)
    查看>>
    MariaDB的简单使用
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    Member var and Static var.
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
    查看>>