当前位置: 首页> 房产> 建材 > 成都app开发多少钱_深圳专业seo_dw网页制作详细步骤_网站买卖

成都app开发多少钱_深圳专业seo_dw网页制作详细步骤_网站买卖

时间:2025/7/9 22:54:02来源:https://blog.csdn.net/qq_54802811/article/details/143422637 浏览次数:1次
成都app开发多少钱_深圳专业seo_dw网页制作详细步骤_网站买卖
        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency>

MyBatis: 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis-Plus: 是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis: 适用于对 SQL 有较高要求的复杂项目,需要更多的自定义和灵活性。
MyBatis-Plus: 适用于快速开发中小型项目,特别是对开发效率有较高要求的场景

代码对比

mybatis :   需要xml实现类

public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User selectById(Integer id);

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    int insert(User user);
}

MyBatis-Plus:                                不需要xml文件

public interface UserMapper extends BaseMapper<User> {
    // 直接继承 BaseMapper 即可获得基本的 CRUD 方法
}

通过以上对比,可以看出 MyBatis-Plus 在 MyBatis 的基础上提供了更多的便捷性和扩展性,适合快速开发和提高效率。

MyBatis核心概念


SqlSessionFactory:
作用: 用于创建 SqlSession 对象,是 MyBatis 的核心对象之一。
创建方式: 通常通过 SqlSessionFactoryBuilder 来创建。


SqlSession:
作用: 用于执行 SQL 语句,管理事务,获取 Mapper 接口的代理对象。
使用方式: 通过 SqlSessionFactory.openSession() 方法获取。


Mapper:
作用: 定义了数据库操作的方法,通常是一个接口。
配置方式: 通过 XML 文件或注解来配置 SQL 语句。


SqlSessionFactoryBuilder:
作用: 用于构建 SqlSessionFactory 对象。
使用方式: 读取配置文件或配置类,构建 SqlSessionFactory。


Configuration:
作用: 包含了 MyBatis 的全局配置信息,如数据源、事务管理器、映射文件等。
配置方式: 通过 XML 文件或 Java 配置类进行配置。


TypeHandler:
作用: 用于处理 Java 类型和 JDBC 类型之间的转换。
配置方式: 可以在 XML 配置文件中或通过注解进行配置。


ResultMap:
作用: 用于定义结果集映射规则,将查询结果映射到 Java 对象。
配置方式: 通过 XML 文件中的 <resultMap> 标签进行配置。


Plugin:
作用: 用于拦截 MyBatis 的内部方法,实现自定义的功能,如分页、日志记录等。
配置方式: 通过 XML 文件中的 <plugins> 标签进行配置。

MyBatis底层逻辑使用的类

 1.SqlSessionFactoryBuilder


作用: 用于构建 SqlSessionFactory 对象。
主要方法:
build(InputStream inputStream): 从输入流中读取配置文件并构建 SqlSessionFactory。
build(InputStream inputStream, String environment): 指定环境配置。
build(InputStream inputStream, Properties properties): 指定属性配置。


2. SqlSessionFactory


作用: 用于创建 SqlSession 对象。
主要方法:
openSession(): 打开一个新的 SqlSession。
openSession(boolean autoCommit): 打开一个新的 SqlSession 并指定是否自动提交事务。
openSession(Connection connection): 使用现有的连接打开一个新的 SqlSession。


3. SqlSession


作用: 用于执行 SQL 语句,管理事务,获取 Mapper 接口的代理对象。
主要方法:
selectList(String statement): 执行查询操作,返回结果列表。
selectOne(String statement): 执行查询操作,返回单个结果。
insert(String statement): 执行插入操作。
update(String statement): 执行更新操作。
delete(String statement): 执行删除操作。
getMapper(Class<T> type): 获取 Mapper 接口的代理对象。


4. Configuration


作用: 包含了 MyBatis 的全局配置信息,如数据源、事务管理器、映射文件等。
主要属性:
environments: 环境配置。
mappers: 映射器配置。
typeAliases: 类型别名配置。
typeHandlers: 类型处理器配置。
objectFactory: 对象工厂配置。
plugins: 插件配置。


5. Executor


作用: 执行 SQL 语句的执行器。
主要实现:
SimpleExecutor: 简单执行器,每次执行 SQL 都会创建新的 PreparedStatement。
ReuseExecutor: 重用执行器,会重用 PreparedStatement。
BatchExecutor: 批处理执行器,用于批量执行 SQL 语句。


6. MapperProxy


作用: 用于生成 Mapper 接口的动态代理对象。
主要方法:
invoke(Object proxy, Method method, Object[] args): 调用 Mapper 接口方法时的代理逻辑。


7. MapperRegistry


作用: 管理 Mapper 接口的注册和解析。
主要方法:
addMapper(Class<T> type): 注册 Mapper 接口。
getMapper(Class<T> type, SqlSession sqlSession): 获取 Mapper 接口的代理对象。


8. MappedStatement


作用: 表示一个映射的 SQL 语句,包含了 SQL 语句的信息和配置。
主要属性:
id: 映射的唯一标识。
sqlSource: SQL 源。
resultMaps: 结果映射。
parameterMap: 参数映射。


9. SqlSource


作用: 用于生成 SQL 语句。
主要实现:
RawSqlSource: 原始 SQL 源。
DynamicSqlSource: 动态 SQL 源。


10. ParameterHandler


作用: 处理 SQL 语句中的参数。
主要方法:
setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType): 设置参数值。


11. ResultSetHandler


作用: 处理查询结果集。
主要方法:
handleResultSets(Statement stmt): 处理结果集并返回结果。


12. TypeHandler


作用: 处理 Java 类型和 JDBC 类型之间的转换。
主要方法:
setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType): 设置参数值。
getResult(ResultSet rs, String columnName): 获取结果值。


MyBatis-Plus 扩展类
MyBatis-Plus 在 MyBatis 的基础上增加了一些扩展类和功能,以下是一些关键的扩展类:


1. BaseMapper


作用: 提供了基本的 CRUD 操作方法。
主要方法:
insert(T entity): 插入记录。
deleteById(Serializable id): 根据 ID 删除记录。
updateById(T entity): 根据 ID 更新记录。
selectById(Serializable id): 根据 ID 查询记录。
selectList(Wrappers<T> queryWrapper): 查询记录列表。


2. Conditions


作用: 提供了条件构造器,用于构建复杂的查询条件。
主要方法:
eq(String column, Object val): 等于。
ne(String column, Object val): 不等于。
gt(String column, Object val): 大于。
ge(String column, Object val): 大于等于。
lt(String column, Object val): 小于。
le(String column, Object val): 小于等于。


3. QueryWrapper


作用: 用于构建查询条件。
主要方法:
eq(String column, Object val): 等于。
ne(String column, Object val): 不等于。
gt(String column, Object val): 大于。
ge(String column, Object val): 大于等于。
lt(String column, Object val): 小于。
le(String column, Object val): 小于等于。
like(String column, Object val): 模糊查询。
in(String column, Collection<?> values): IN 查询。


4. UpdateWrapper


作用: 用于构建更新条件。
主要方法:
eq(String column, Object val): 等于。
ne(String column, Object val): 不等于。
gt(String column, Object val): 大于。
ge(String column, Object val): 大于等于。
lt(String column, Object val): 小于。
le(String column, Object val): 小于等于。
set(String column, Object val): 设置字段值。
底层逻辑流程
初始化:
通过 SqlSessionFactoryBuilder 读取配置文件,构建 SqlSessionFactory。
SqlSessionFactory 读取配置信息,初始化 Configuration 对象。
创建 SqlSession:
通过 SqlSessionFactory.openSession() 创建 SqlSession 对象。
获取 Mapper 接口的代理对象:
通过 SqlSession.getMapper(Class<T> type) 获取 Mapper 接口的代理对象。
MapperRegistry 会根据 Mapper 接口生成 MapperProxy 对象。
执行 SQL 语句:
调用 Mapper 接口的方法时,MapperProxy 会调用 SqlSession 的相应方法。
SqlSession 通过 Executor 执行 SQL 语句。
Executor 会使用 ParameterHandler 处理参数,使用 ResultSetHandler 处理结果集。
事务管理:
SqlSession 管理事务的开始、提交和回滚。
关闭资源:
通过 SqlSession.close() 关闭 SqlSession,释放资源。

 

关键字:成都app开发多少钱_深圳专业seo_dw网页制作详细步骤_网站买卖

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: