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

    你可能感兴趣的文章
    npm install报错,证书验证失败unable to get local issuer certificate
    查看>>
    npm install无法生成node_modules的解决方法
    查看>>
    npm install的--save和--save-dev使用说明
    查看>>
    npm node pm2相关问题
    查看>>
    npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
    查看>>
    npm run build报Cannot find module错误的解决方法
    查看>>
    npm run build部署到云服务器中的Nginx(图文配置)
    查看>>
    npm run dev 和npm dev、npm run start和npm start、npm run serve和npm serve等的区别
    查看>>
    npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
    查看>>
    npm scripts 使用指南
    查看>>
    npm should be run outside of the node repl, in your normal shell
    查看>>
    npm start运行了什么
    查看>>
    npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
    查看>>
    npm 下载依赖慢的解决方案(亲测有效)
    查看>>
    npm 安装依赖过程中报错:Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
    查看>>
    npm.taobao.org 淘宝 npm 镜像证书过期?这样解决!
    查看>>
    npm—小记
    查看>>
    npm上传自己的项目
    查看>>
    npm介绍以及常用命令
    查看>>
    NPM使用前设置和升级
    查看>>