当前位置: 首页 > wzjs >正文

网站建设手机网站做兼职一般去哪个网站

网站建设手机网站,做兼职一般去哪个网站,wordpress无法编辑文章,大理州建设局官方网站1. 什么是 MyBatis? MyBatis 是一款优秀的 持久层框架,它通过 XML 或注解配置,将 Java 对象(POJO)与数据库操作(SQL)进行灵活映射,简化了 JDBC 的复杂操作。 核心思想:S…
1. 什么是 MyBatis?

MyBatis 是一款优秀的 持久层框架,它通过 XML 或注解配置,将 Java 对象(POJO)与数据库操作(SQL)进行灵活映射,简化了 JDBC 的复杂操作。

  • 核心思想SQL 与代码分离,开发者可专注 SQL 优化,同时享受 ORM(对象关系映射)的便捷。

  • 定位:介于 JDBC 和全自动 ORM(如 Hibernate)之间的半自动化框架,灵活控制 SQL,适合复杂查询和高性能场景。


2. 核心特性
特性说明
动态 SQL支持条件分支(<if><choose>)、循环(<foreach>)等动态生成 SQL。
参数映射自动将 Java 对象属性映射到 SQL 参数(#{property})。
结果集映射将查询结果自动封装为 Java 对象(<resultMap>)。
缓存机制提供一级缓存(SqlSession 级别)和二级缓存(Mapper 级别)。
插件扩展支持自定义插件(如分页、日志),通过拦截器修改 MyBatis 核心行为。

3. 核心组件

    1.SqlSessionFactory

  • 作用:创建 SqlSession 的工厂类,全局唯一,通常由 SqlSessionFactoryBuilder 解析配置文件生成。

  • 配置来源:XML 文件(如 mybatis-config.xml)或 Java 代码。

    2.SqlSession

  • 作用:执行 SQL 操作、获取 Mapper 接口实例。非线程安全,需确保每次请求单独创建。

  • 关键方法

    <T> T getMapper(Class<T> type);  // 获取 Mapper 接口实例
    int insert(String statement, Object parameter);  // 直接执行 SQL

    3.Mapper 接口与 XML 映射文件

  • Mapper 接口:定义数据库操作方法,方法名与 XML 中的 SQL ID 对应。

  • XML 映射文件:编写 SQL 语句,配置参数/结果映射。

    4.Executor

  • 作用:SQL 执行器,处理缓存、事务、语句调度等核心逻辑。

  • 类型SimpleExecutor(默认)、ReuseExecutor(重用预处理语句)、BatchExecutor(批处理)。


4. 工作原理
  1. 配置加载

    • 解析 mybatis-config.xml,初始化数据源、事务管理器、Mapper 扫描路径等。

    • 加载 Mapper XML 文件或扫描 Mapper 接口,构建 SQL 映射关系。

  2. SqlSession 创建

    • 通过 SqlSessionFactory.openSession() 创建 SqlSession,内部包含 Executor 和事务控制。

  3. SQL 执行流程

    • Mapper 代理:通过动态代理(如 MapperProxy)将接口方法调用转发给 SqlSession。

    • SQL 解析:根据方法名找到对应的 SQL 语句,处理动态标签(如 <if>)。

    • 参数处理:将 Java 对象转换为 SQL 参数(ParameterHandler)。

    • SQL 执行:通过 Executor 执行 JDBC 操作,返回结果。

    • 结果映射:将 ResultSet 转换为 Java 对象(ResultSetHandler)。


5. 缓存机制
缓存级别作用范围生命周期开启方式
一级缓存SqlSession 级别随 SqlSession 关闭或清空默认开启
二级缓存Mapper 级别应用生命周期,可跨 SqlSession 共享XML 中配置 <cache/> 标签开启

6. 常见问题
  1. MyBatis 与 Hibernate 的区别?

    • MyBatis:半自动化,需手动写 SQL,灵活控制细节。

    • Hibernate:全自动化,通过 HQL 操作对象,适合快速开发。

  2. #{} 和 ${} 的区别?

    • #{}:预编译参数(防 SQL 注入),如 WHERE id = ?

    • **∗∗:字符串替换(慎用),如动态表名‘ORDERBY∗∗:字符串替换(慎用),如动态表名‘ORDERBY{column}`。

  3. 如何实现分页?

    • 物理分页:使用插件(如 PageHelper)或数据库方言(LIMIT)。

    • 内存分页:查询全部数据后在代码中分页(不推荐)。


7. 总结
  • 优势:灵活控制 SQL、动态 SQL 强大、性能优化空间大。

  • 适用场景:复杂查询、需深度优化 SQL、对数据库访问有精细控制需求的项目。

  • 学习路径:掌握 XML/注解配置 → 理解动态 SQL → 熟悉缓存机制 → 整合 Spring/Spring Boot。



文章转载自:

http://K42Yrfhp.xzqzd.cn
http://SWYU6FPw.xzqzd.cn
http://KmafB5bo.xzqzd.cn
http://pwVTberm.xzqzd.cn
http://VdL12LPK.xzqzd.cn
http://HCGscJGv.xzqzd.cn
http://AuA6dVuh.xzqzd.cn
http://3fNfRThu.xzqzd.cn
http://dWsU1iwi.xzqzd.cn
http://JxKmubMN.xzqzd.cn
http://dOm3EQuR.xzqzd.cn
http://zXE1tWR2.xzqzd.cn
http://G2OnrcRu.xzqzd.cn
http://2DvAdmwz.xzqzd.cn
http://obKt4FiE.xzqzd.cn
http://tQMmno4u.xzqzd.cn
http://yjL2jKF1.xzqzd.cn
http://BOuuD14Z.xzqzd.cn
http://xeoHBGlS.xzqzd.cn
http://ZVac1Wrb.xzqzd.cn
http://8LvV4T9C.xzqzd.cn
http://601bpPHA.xzqzd.cn
http://Q7P0k5cr.xzqzd.cn
http://ClKIJ1zP.xzqzd.cn
http://OPIfMDLb.xzqzd.cn
http://vHCs2ZyN.xzqzd.cn
http://fcFQ8tuf.xzqzd.cn
http://BEzv5qC5.xzqzd.cn
http://EGIUDPw1.xzqzd.cn
http://P7M1e1Sq.xzqzd.cn
http://www.dtcms.com/wzjs/690973.html

相关文章:

  • 网站制作公司代理企业网站建设一条
  • 手游app平台推广微信xiala5济南优化网站价格
  • 定制营销型网站平面设计兼职接单
  • 网站建设公司汕头的东莞知名企业排名
  • 图列说明网站开发的流程关于网站集约化建设的意见
  • 创建个人主页网站网站首页模板图片
  • 别样网站建设黑龙江省住房和城乡建设信息网
  • 给孩子做衣服的网站工信局网站备案查询
  • 界面官方网站网站开发与发布
  • 浏阳网站制作公司wordpress游戏小程序
  • 滕州网站架设wordpress主题 电影
  • 山东专业网站建设wordpress导购主题免费
  • js实现网站浮动窗口优秀的ui设计案例分析
  • 厦门自助网站建设报价建的企业网站如何在百度搜到
  • 高埗镇网站建设公司投资网站网站源码
  • 上海网站开发企业深圳福田专业网站推广
  • 一个公司做两个网站宁波网站建设开发公司
  • 网站有哪些费用多少钱购票网站模板
  • 网站什么也没动怎么不收录啦凡客陈年
  • 网站开发哪家好wordpress黄聪文件上传
  • 微信网站模板免费下载百度app智能小程序
  • apache多网站配置wordpress淘宝客网站运营
  • 优秀国外设计网站app做网站的行情
  • 云畅网站建设涉县住房和城乡规划建设局网站
  • 用asp做网站需要准备什么木疙瘩h5制作
  • 深圳 企业网站建设制作网站公司价格
  • 东昌府区建设局网站php网站开发 pdf
  • 小型企业建设网站河南金建建设有限公司网站
  • .net做网站的优缺点企业可以做哪些网站有哪些内容
  • 网站维护开发合同深圳网络优化有限公司