博客
关于我
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/

    你可能感兴趣的文章
    NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>