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

    你可能感兴趣的文章
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>