mybatis框架详解PPT
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取...
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和原始类型、接口和 Java POJOs(Plain Old Java Objects) 为映射,包括集成的复杂类型。MyBatis 框架特点MyBatis 的主要特点包括:配置简单MyBatis 的配置主要集中在 XML 映射文件中,这些文件通常比较清晰易读,对于复杂 SQL 的编写和调试都相对方便。此外,MyBatis 还支持通过注解进行配置,使得代码和配置更加分离SQL映射MyBatis 通过 XML 或注解的方式将 SQL 与 Java 对象进行映射,使得开发者可以更加专注于业务逻辑而不是手动编写 SQL 语句灵活性MyBatis 允许开发者编写动态 SQL,对于不同的数据操作可以动态生成不同的 SQL 语句,使得 SQL 更加灵活与Spring集成MyBatis 可以很好地与 Spring 集成,使得开发更加便捷缓存MyBatis 提供了一级缓存和二级缓存功能,可以缓存 SQL 执行结果,提高系统性能MyBatis 核心组件MyBatis 的核心组件包括:SqlSessionFactoryBuilder这是一个创建者类,可以通过它来创建 SqlSessionFactory。通常用于在单元测试中创建 in-memory 的 SqlSessionFactory。在应用程序运行时,通常使用 SqlSessionFactoryBuilder 来构建 SqlSessionFactorySqlSessionFactory这是创建 SqlSession 的工厂。通常这个对象在应用程序启动时会被创建一次,并被缓存以提高性能。这个对象可以被配置许多不同的参数,包括连接数据库的 URL、用户名、密码、数据库时间、驱动程序等等。通过这个对象,你可以获取指定配置的 SqlSession。SqlSession 的配置以 SqlSessionFactory 的配置为基础,不同的 SqlSession 可以有不同的配置。SqlSessionFactory 和 SqlSession 都提供了用于执行命令的方法,如执行 SQL 语句或映射文件中的更新和查询方法SqlSession每个线程都应该有它自己的 SqlSession实例。SqlSession实例是非线程安全的,应该被同步或者是以一种等同于同步的方式来管理。SqlSession 可以被看作是一个数据库操作的生命周期,它代表的是一个数据库会话(session)。你可以通过 SqlSession 来执行 SQL 语句、映射文件中的更新和查询方法等。当一个数据库会话结束时(通常在结束执行、异常结束或关闭 SqlSession 时),应该调用 SqlSession 的 close 方法以释放数据库资源MapperMapper 是 MyBatis 中非常重要的一个接口,它代表了与数据库交互的接口。一个 Mapper 接口定义了它的方法可以完成的所有数据库操作。Mapper 接口的方法可以是任何你需要的操作,例如一个查询或更新等。Mapper 接口的一个实现类实现了 Mapper 接口的所有方法,每个方法对应一个 SQL 语句。这些 SQL 语句是由 XML 或注解来定义的,然后通过 MyBatis 来生成的动态 SQL 来执行的。一个 Mapper 可以使用全局的或者命名的方式来映射 SQL 语句MappedStatementMappedStatement 是用来表示一个映射语句的接口。一个 MappedStatement 表示一个 SQL 语句或者一个存储过程,它可以通过参数来执行并返回结果。一个 MappedStatement 可以有一个或者多个参数,也可以有一个或者多个结果。每个 MappedStatement 可以有一个对应的语句 ID 和参数类型列表(如果有的话)。在 MyBatis 中,你可以通过这个 ID 来获取对应的 MappedStatementParameterHandlerParameterHandler 是用来处理参数的接口。它有一个 setParameters(PreparedStatement ps, Object parameter) 方法用来设置参数。在 MyBatis 中,你可以自定义 ParameterHandler 来处理复杂的参数情况。例如,你可能需要将一个 Java Bean 转换为行集(ResultSet)中的列(column)ResultSetHandlerResultSetHandler 是用来处理结果集的接口。它有一个 handleResultSets(ResultSet rs) 方法用来处理结果集中的每一行数据。在 MyBatis 中,你可以自定义 ResultSetHandler 来处理复杂的结果集情况。例如,你可能需要将行集(ResultSet)中的列(column)转换为 Java BeanExecutorExecutor 是 MyBatis 中执行 SQL 语句的核心模块。它有一个 execute(MappedStatement ms, Object parameter) 方法用来执行 SQL 语句。在 MyBatis 中,你可以自定义 Executor 来改变 SQL 语句的执行方式。例如,你可以通过自定义 Executor 来实现事务的自动管理等功能PluginPlugin 是 My