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

网站的域名和密码做网站的背景怎么做

网站的域名和密码,做网站的背景怎么做,seo和sem的概念,做网站论坛赚钱有很多朋友可能已经在开发中熟练使用 MyBatis 或者刚开始学习 MyBatis#xff0c;对于它的一些工作机制不太了解。“咦#xff0c;怎么写几个注解#xff0c;写几个配置文件#xff0c;就能实现这些效果呢#xff0c;好神奇呀#xff01;”当你看完这篇博客之后#xf… 有很多朋友可能已经在开发中熟练使用 MyBatis  或者刚开始学习 MyBatis对于它的一些工作机制不太了解。“咦怎么写几个注解写几个配置文件就能实现这些效果呢好神奇呀”当你看完这篇博客之后你会不经赞叹 MyBatis 框架设计者的巧妙并且会帮助你理解这个工作机制。 还是先大致介绍一下 Mybatis在现代 Java 开发中MyBatis 是一个非常流行的持久层框架它帮助我们简化了数据库操作减少了重复代码并提升了开发效率。今天我们将重点探讨 MyBatis 中的注解式开发和它背后的动态代理机制。通过理解这些核心概念你将能够更高效地使用 MyBatis 进行数据库交互。 一、什么是 MyBatis 注解式开发 我们先来简单回顾一下 MyBatis 的基本概念。MyBatis 是一个半自动化的 ORM对象关系映射框架它通过 SQL 映射文件XML 或注解将 Java 对象与数据库表中的数据进行映射。与传统的 JDBC 操作相比MyBatis 提供了更简洁的代码和更灵活的 SQL 操作方式。 在注解式开发中我们将 SQL 语句直接写在 Java 接口的方法上MyBatis 会根据这些注解自动执行相应的 SQL。这种方式简化了传统 XML 配置适用于一些简单、直接的数据库操作。 二、核心机制SqlSessionFactory 和 SqlSession 1. SqlSessionFactory 的作用 无论是使用 XML 还是注解SqlSessionFactory 都是 MyBatis 的核心。它的主要任务是解析配置文件、创建 SqlSession 实例并初始化所有相关的环境配置。通过 SqlSessionFactory我们可以访问数据库和执行 SQL。 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(mybatis-config.xml));在注解式开发中SqlSessionFactory 会根据我们提供的配置文件来加载数据库连接、事务管理等信息并为每个数据库操作生成 SqlSession 对象。 2. SqlSession 的核心作用 SqlSession 是与数据库交互的关键对象它负责执行 SQL 语句、管理事务并返回查询结果。在注解式开发中SqlSession 会通过动态代理的方式创建 Mapper 接口的实例从而完成数据库操作。 try (SqlSession session sqlSessionFactory.openSession()) {UserMapper mapper session.getMapper(UserMapper.class);User user mapper.selectUserById(1);System.out.println(user.getName()); }在这个代码中SqlSession 通过 session.getMapper(UserMapper.class) 获取到一个动态代理的 UserMapper 接口对象并执行查询操作。 三、Mapper 接口动态代理的神奇之处 1. 什么是 Mapper 接口 Mapper 接口是 MyBatis 提供的一种方式用于将 SQL 操作封装为 Java 接口方法。每个方法对应一个 SQL 语句在运行时MyBatis 会为这些方法生成代理类通过动态代理来执行实际的数据库操作。 在注解式开发中Select、Insert 等注解用于直接定义 SQL 语句而 MyBatis 会根据这些注解的内容来生成相应的 SQL 执行逻辑。 2. 动态代理的工作原理 MyBatis 使用 Java 的动态代理机制java.lang.reflect.Proxy为每个 Mapper 接口创建代理对象。当调用 mapper.selectUserById(1) 时代理对象会拦截这个方法调用解析方法名并执行相应的 SQL。 这种代理机制的核心是 MapperProxy 类它负责将方法调用转发给 SqlSession 来执行实际的数据库操作。 UserMapper mapper sqlSession.getMapper(UserMapper.class); // 动态代理生成 mapper.selectUserById(1); // 实际调用时被代理拦截在执行过程中MapperProxy 会根据方法的名称、参数以及注解中的 SQL 信息来确定要执行的 SQL 语句并通过 SqlSession 来完成 SQL 执行。 3. 注解的工作机制 MyBatis 提供了多种注解来简化 SQL 的编写最常用的有 Select、Insert、Update 和 Delete。这些注解会将 SQL 语句绑定到对应的接口方法上并且 MyBatis 会在初始化时解析这些注解确保每个方法能够正确执行相应的 SQL。 例如 Mapper public interface UserMapper {Select(SELECT * FROM user WHERE id #{id})User selectUserById(Param(id) int id); }在这个例子中Select 注解将 SQL 语句绑定到 selectUserById 方法MyBatis 会自动生成对应的执行逻辑。调用 mapper.selectUserById(1) 时MyBatis 会解析 SQL 并执行查询操作。 四、SqlSession 和 Mapper 的协作 Mapper 通过 SqlSession 执行 SQL在 MyBatis 中Mapper 接口的每个方法都通过 SqlSession 执行 SQL 查询或更新操作。 事务管理SqlSession 提供了提交、回滚和关闭的方法以确保事务的一致性。在注解式开发中事务管理仍然由 SqlSession 负责。 try (SqlSession sqlSession sqlSessionFactory.openSession()) {UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.selectUserById(1); // 执行 SQL 查询sqlSession.commit(); // 提交事务 }通过这种方式SqlSession 确保了数据库操作的事务一致性和执行效率。 五、总结MyBatis 注解式开发的优势 简化配置注解式开发无需编写复杂的 XML 配置SQL 直接写在 Java 方法上减少了配置的复杂度。高效开发通过动态代理机制MyBatis 可以自动为我们生成数据库操作的执行逻辑简化了代码结构。灵活性虽然注解式开发适用于简单的 SQL 操作但对于复杂的查询或多表关联MyBatis 仍然推荐使用 XML 配置。 MyBatis 在注解式开发中的优势显而易见它不仅提高了开发效率还减少了 SQL 语句与 Java 代码的耦合度。通过理解 SqlSession 和动态代理的机制你将能够更好地利用 MyBatis 进行高效的数据库操作。 希望通过这篇文章你能对 MyBatis 的注解式开发和动态代理原理有更深入的理解并能够灵活运用它们来优化你的项目开发。
文章转载自:
http://www.morning.yyzgl.cn.gov.cn.yyzgl.cn
http://www.morning.smmrm.cn.gov.cn.smmrm.cn
http://www.morning.qsy36.cn.gov.cn.qsy36.cn
http://www.morning.gtdf.cn.gov.cn.gtdf.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.czcbl.cn.gov.cn.czcbl.cn
http://www.morning.joinyun.com.gov.cn.joinyun.com
http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn
http://www.morning.gfkb.cn.gov.cn.gfkb.cn
http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn
http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn
http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn
http://www.morning.zhishizf.cn.gov.cn.zhishizf.cn
http://www.morning.knpmj.cn.gov.cn.knpmj.cn
http://www.morning.chjnb.cn.gov.cn.chjnb.cn
http://www.morning.kyfrl.cn.gov.cn.kyfrl.cn
http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn
http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn
http://www.morning.dhpjq.cn.gov.cn.dhpjq.cn
http://www.morning.fwlch.cn.gov.cn.fwlch.cn
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.stmkm.cn.gov.cn.stmkm.cn
http://www.morning.jrqcj.cn.gov.cn.jrqcj.cn
http://www.morning.thzwj.cn.gov.cn.thzwj.cn
http://www.morning.gstg.cn.gov.cn.gstg.cn
http://www.morning.zstbc.cn.gov.cn.zstbc.cn
http://www.morning.prprj.cn.gov.cn.prprj.cn
http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn
http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn
http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn
http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn
http://www.morning.srbsr.cn.gov.cn.srbsr.cn
http://www.morning.fnfxp.cn.gov.cn.fnfxp.cn
http://www.morning.xrct.cn.gov.cn.xrct.cn
http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn
http://www.morning.zfhzx.cn.gov.cn.zfhzx.cn
http://www.morning.hdzty.cn.gov.cn.hdzty.cn
http://www.morning.dhpjq.cn.gov.cn.dhpjq.cn
http://www.morning.gqbks.cn.gov.cn.gqbks.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn
http://www.morning.mpyry.cn.gov.cn.mpyry.cn
http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn
http://www.morning.mhybs.cn.gov.cn.mhybs.cn
http://www.morning.bflwj.cn.gov.cn.bflwj.cn
http://www.morning.qcdhg.cn.gov.cn.qcdhg.cn
http://www.morning.wkcl.cn.gov.cn.wkcl.cn
http://www.morning.yrctp.cn.gov.cn.yrctp.cn
http://www.morning.frqtc.cn.gov.cn.frqtc.cn
http://www.morning.gfhng.cn.gov.cn.gfhng.cn
http://www.morning.cpfx.cn.gov.cn.cpfx.cn
http://www.morning.iterlog.com.gov.cn.iterlog.com
http://www.morning.baohum.com.gov.cn.baohum.com
http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn
http://www.morning.clwhf.cn.gov.cn.clwhf.cn
http://www.morning.cjmmn.cn.gov.cn.cjmmn.cn
http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn
http://www.morning.dqrpz.cn.gov.cn.dqrpz.cn
http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn
http://www.morning.clxpp.cn.gov.cn.clxpp.cn
http://www.morning.qwbht.cn.gov.cn.qwbht.cn
http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn
http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn
http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn
http://www.morning.lgznf.cn.gov.cn.lgznf.cn
http://www.morning.qlznd.cn.gov.cn.qlznd.cn
http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com
http://www.morning.wflpj.cn.gov.cn.wflpj.cn
http://www.morning.yprnp.cn.gov.cn.yprnp.cn
http://www.morning.xrhst.cn.gov.cn.xrhst.cn
http://www.morning.mtmnk.cn.gov.cn.mtmnk.cn
http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn
http://www.morning.qsctt.cn.gov.cn.qsctt.cn
http://www.morning.tpchy.cn.gov.cn.tpchy.cn
http://www.morning.rydhq.cn.gov.cn.rydhq.cn
http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn
http://www.morning.zpyxl.cn.gov.cn.zpyxl.cn
http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn
http://www.tj-hxxt.cn/news/257844.html

相关文章:

  • 电子商务网站建设规划方案论文wordpress上传ppt
  • 捷信做单网站王野小说
  • 网站域名注册基本流程温州论坛散讲温州
  • 绍兴做公司网站的公司济南建网站app
  • 网站开发成本核算及账务处理网站建设 上海
  • 备案不关闭网站的方法北京ui设计培训
  • 宁波企业网站设计企业咨询方案
  • 提供常州网站建设建设旅游网站系统
  • 广州制作网站哪家专业淮南查查网
  • 免费建站资源广西网站建设推荐
  • 专业的建网站公司地址服务器安装wordpress
  • 机关单位特色的网站建设微信公众号商城怎么开通
  • 网站空间租用多少钱wordpress 应用市场
  • 怎么在各大网站做推广优化网站推广
  • 福州网站建设思企南宁做网约车哪个平台比较好
  • google seo 营销网站淄博搜索引擎优化
  • 山东济南seo整站优化河南宏业建设管理有限公司网站
  • 关于网站建设的外文文献苏州市智信建设职业培训学校网站
  • 海淘网站网站右侧浮动微信二维码
  • 网站建设 有限公司茶文化网站制作
  • 通过网站赚钱18种最有效线下推广的方式
  • 东莞网站建设实例分析wordpress mysql 扩展
  • 网站建设费是什么logo商标设计公司
  • 许昌网站建设汉狮怎么样济南科技市场做网站
  • 网站制作商城onethink 网站
  • 设计师门户网站程序wordpress 主题插件
  • 汕头建网站贵安新区建设管理信息网站
  • 广州招聘网站制作手机版网站开发用什么语言
  • 网络平台建站软文代发代理
  • 昆明展示型网站开发网页设计作业 定做