做网站怎么加背景图片网站开发范围说明书

news/2025/10/8 14:26:10/文章来源:
做网站怎么加背景图片,网站开发范围说明书,三合一网站有必要吗,wordpress mip教程简介#xff1a; 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别#xff0c;以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习#xff0c;读者基本能够了解 MyBatis 有哪些方面的改进#xff0c;并能够顺利使用 MyBatis 进行开发。本文更适合有 iBat… 简介 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习读者基本能够了解 MyBatis 有哪些方面的改进并能够顺利使用 MyBatis 进行开发。本文更适合有 iBatis 基础的开发人员阅读。从 iBatis 到 MyBatis你准备好了吗对于从事 Java EE 的开发人员来说iBatis 是一个再熟悉不过的持久层框架了在 Hibernate、JPA 这样的一站式对象 / 关系映射O/R Mapping解决方案盛行之前iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天iBatis 凭借着易学易用、轻巧灵活等特点也仍然拥有一席之地。尤其对于擅长 SQL 的开发人员来说iBatis 对 SQL 和存储过程的直接支持能够让他们在获得 iBatis 封装优势的同时而不丧失 SQL 调优的手段这是 Hibernate/JPA 所无法比拟的。具体而言使用 iBatis 框架的主要优势主要体现在如下几个方面首先iBatis 封装了绝大多数的 JDBC 样板代码使得开发者只需关注 SQL 本身而不需要花费精力去处理例如注册驱动创建 Connection以及确保关闭 Connection 这样繁杂的代码。其次iBatis 可以算是在所有主流的持久层框架中学习成本最低最容易上手和掌握的框架。虽说其他持久层框架也号称门槛低容易上手但是等到你真正使用时会发现要想掌握并用好它是一件非常困难的事。在工作中我需要经常参与面试我曾听到过很多位应聘者描述他们所在的项目在技术选型时选择 Hibernate后来发现难以驾驭不得不将代码用 JDBC 或者 iBatis 改写。iBatis 自从在 Apache 软件基金会网站上发布至今和他的明星兄弟们Http ServerTomcatStrutsMavenAnt 等等一起接受者万千 Java 开发者的敬仰。然而在今年六月中旬几乎是发布 3.0 版本的同时iBatis 主页上的一则 “Apache iBATIS has been retired” 的声明在社区引起了一阵不小的波澜。在 Apache 寄居六年之后iBatis 将代码托管到 Google Code。在声明中给出的主要理由是和 Apache 相比Google Code 更有利于开发者的协同工作也更能适应快速发布。于此同时iBatis 更名为 MyBatis。从 iBatis 到 MyBatis不只是名称上的变化MyBatis 提供了更为强大的功能同时并没有损失其易用性相反在很多地方都借助于 JDK 的泛型和注解特性进行了简化。iBatis 确实该退休了因为一个更为出色的继任者经过 10 个 Beta 版本的蜕变已然出现在我们的面前。本文将主要针对 MyBatis 和 iBatis 的变化之处进行讨论以便于读者顺利从 iBatis 向 MyBatis 过渡。由一个 MyBatis 示例开始如果读者接触过一些常用的 Java EE 框架应该都知道这些框架需要提供一个全局配置文件用于指定程序正常运行所需的设置和参数信息。而针对常用的持久层框架而言Hibernate、JPA、iBatis 等则通常需要配置两类文件一类用于指定数据源、事务属性以及其他一些参数配置信息通常是一个独立的文件可以称之为全局配置文件另一类则用于指定数据库表和程序之间的映射信息可能不止一个文件我们称之为映射文件。MyBatis 也不例外虽然其中的一部分可以通过注解的形式进行但是这两部分内容本身仍是必不可少的。根据 iBatis 的习惯我们通常把全局配置文件命名为 sqlMapConfig.xml文件名本身并没有要求在 MyBatis 中也经常会将该文件命名为 Configuration.xml 读完全文后读者也许会发现在 iBatis 中经常出现的 “sqlMap” 在 MyBatis 中被逐渐淡化了除了此处还比如 iBatis 配置文件的根元素为 sqlMapConfig指定映射文件的元素为 sqlMap以及 SqlMapClient 等等这个变化正说明iBatis 仅是以 SQL 映射为核心的框架而在 MyBatis 中多以 Mapper、Session、Configuration 等其他常用 ORM 框架中的名字代替体现的无非是两个方面首先是为了减少开发者在切换框架所带来的学习成本其次MyBatis 充分吸收了其他 ORM 框架好的实践MyBatis 现在已不仅仅是一个 SQL 映射框架了。在全局配置文件中可以配置的信息主要包括如下几个方面properties --- 用于提供一系列的键值对组成的属性信息该属性信息可以用于整个配置文件中。settings --- 用于设置 MyBatis 的运行时方式比如是否启用延迟加载等。typeAliases --- 为 Java 类型指定别名可以在 XML 文件中用别名取代 Java 类的全限定名。typeHandlers --- 在 MyBatis 通过 PreparedStatement 为占位符设置值或者从 ResultSet 取出值时特定类型的类型处理器会被执行。objectFactory --- MyBatis 通过 ObjectFactory 来创建结果对象。可以通过继承 DefaultObjectFactory 来实现自己的 ObjectFactory 类。plugins --- 用于配置一系列拦截器用于拦截映射 SQL 语句的执行。可以通过实现 Interceptor 接口来实现自己的拦截器。environments --- 用于配置数据源信息包括连接池、事务属性等。mappers --- 程序中所有用到的 SQL 映射文件都在这里列出这些映射 SQL 都被 MyBatis 管理。上面提及的大多数元素都不是必需的通常 MyBatis 会为没有显式设置的元素提供缺省值。一个简单的全局配置文件示例如下清单 1. 简单的全局配置文件示例?xml version1.0 encodingUTF-8 ?!--iBatis 和 MyBatis 的全局配置文件使用不同的 DTD 约束在将应用由iBatis 升级至 MyBatis 时需要注意两者的映射文件 DTD 约束也不相同--!DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtdconfiguration!-- 配置数据源相关的信息 --environments defaultdemoenvironment iddemotransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver value … /property nameurl value … /property nameusername valueroot/property namepassword valueroot//dataSource/environment/environments!-- 列出映射文件 --mappersmapper resourcefootmark/mybatis/demo/UserInfoMapper.xml//mappers/configuration有了这些信息MyBatis 便能够和数据库建立连接并应用给定的连接池信息和事务属性。MyBatis 封装了这些操作最终暴露一个 SqlSessionFactory 实例供开发者使用从名字可以看出来这是一个创建 SqlSession 的工厂类通过 SqlSession 实例开发者能够直接进行业务逻辑的操作而不需要重复编写 JDBC 相关的样板代码。根据全局配置文件生成 SqlSession 的代码如下Reader reader Resources.getResourceAsReader(Configuration.xml); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession sqlSessionFactory.openSession();在完成全局配置文件并通过 MyBatis 获得 SqlSession 对象之后便可以执行数据访问操作了。对于 iBatis/MyBatis 而言要执行的操作其实就是在映射文件中配置的 SQL 语句。两者的配置基本相同如下所示可以把上面的三行代码看做是 MyBatis 创建 SqlSession 的样板代码。其中第一行代码在类路径上加载配置文件Resources 是 MyBatis 提供的一个工具类它用于简化资源文件的加载它可以访问各种路径的文件不过最常用的还是示例中这种基于类路径的表示方式。如果读者对 Hibernate 有所了解一定会发现 MyBatis 不论是使用风格还是类名都和 Hibernate 非常相像笔者曾今多次在国内外 Java 社区看到有人说 MyBatis 在向 Hibernate/JPA 靠拢。暂且不论这是否属实持久化技术在经过一番蓬勃的竞争和发展最终在社区形成统一的认识并被广泛接受这对开发者而言未必不是一件好事MyBatis 在这一点上只是向事实上的标准靠近了一步。清单 2. 在映射文件中配置 SQL 语句?xml version1.0 encodingUTF-8 ?!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacemybatis.demo.UserInfoMapperselect idselectUser parameterTypeintresultTypemybatis.demo.UserInfoselect * from UserInfo where userid #{userid}/select/mapper在 iBatis 中namespace 不是必需的且它的存在没有实际的意义。在 MyBatis 中namespace 终于派上用场了它使得映射文件与接口绑定变得非常自然。关于接口绑定后面会有篇幅专门描述。使用 SqlSession 执行 SQL 的方式如下清单 3. 使用 SqlSession 执行映射文件中配置的 SQL 语句try { UserInfo userinfo (UserInfo) sqlSession.selectOne (mybatis.demo.UserInfoMapper.getUser, 2); System.out.println(userinfo); } finally { sqlSession.close(); }需要注意的是SqlSession 的使用必需遵守上面的格式即在 finally 块中将其关闭。以保证资源得到释放防止出现内存泄露以上就是一个简单而完整的 MyBatis 程序。其中涉及了全局配置文件映射文件构建 SqlSession 对象执行数据访问操作等四个步骤。下面将针对除构建 SqlSession 对象之外的三块内容进行分解。MyBatis 全局配置文件的改变MyBatis 全局配置文件的各主要元素基本和 iBatis 相同只是在用法和个别名称上做了调整。元素的意义就不再描述下面主要讲述针对 iBatis 和 MyBatis 配置文件的主要区别之处。首先两个版本的 DTD 约束不同MyBatis 的 DTD 文件已经包含在发布包下的 mybatis-3.0.x.jar 包中。这直接影响到的是iBatis 配置文件的根元素是 sqlMapConfig而 MyBatis 使用的是 configuration。其次settings 的用法发生了改变之前的格式为清单 4. 在 iBatis 中设置属性的方式 settings props1value1 props2value2… / 要设置的属性直接以键值对的形式作为 settings 的属性。而在 MyBatis 中调整为略显复杂但却更有条理的方式清单 5. 在 MyBatis 中设置属性的方式 settings  setting nameprops1 valuevalue1/  setting nameprops2 valuevalue2/ …… /settings 另外之前配置事务管理器和数据源的方式如下清单 6. 在 iBatis 中配置事务管理器和数据源的方式 transactionManager typeJDBC  dataSource typeSIMPLE  property nameJDBC.Driver value${driver}/  !-- 其他数据源信息省略 --  /dataSource  /transactionManager 在 MyBatis 中调整为如下的方式清单 7. 在 MyBatis 中配置事务管理器和数据源的方式 environments defaultdemo  environment iddemo  transactionManager typeJDBC/  dataSource typePOOLED  property nameJDBC.Driver value${driver}/  !-- 其他数据源信息省略 --  /dataSource  /environment  /environments 通过 environments 来进行数据源管理主要是为了简化在多套数据源配置之间的切换比如开发和发布使用不同的配置。最后在 iBatis 中指定映射文件的方式如下清单 8. 在 iBatis 中指定映射文件的方式 sqlMap resource... /  sqlMap resource... /  sqlMap resource... / 在 MyBatis 中调整为如下方式清单 9. 在 MyBatis 中指定映射文件的方式 mappers  mapper resource... /  mapper resource... /  /mappers 上面的这些调整主要出发点其实并不是使得 MyBatis 功能更为强大而是使配置更为合理让开发者更容易阅读和理解。到目前为止我们主要讨论了 XML 形式的全局配置其实这也不是唯一选择MyBatis 还提供了通过代码来进行配置的方式清单 10. 在 MyBatis 中使用代码进行配置 DataSource ds …… // 获取一个 DataSource  TransactionFactory txFactory new JdbcTransactionFactory();  Environment env new Environment(demo, txFactory, ds);  Configuration cfg new Configuration(env);  cfg.addMapper(UserInfoMapper.class);  SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(cfg); 结合前面的配置文件很容易理解这段代码的意思故不再赘述。不过需要注意的是 Configuration 的 addMapper() 方法该方法的参数通常是一个接口可以在接口里面定义若干方法在方法上使用注解来指定映射的 SQL 语句。一个典型的接口定义以及对应的数据访问方法如下清单 11. 将映射的 SQL 语句与接口中的方法绑定 // 映射 SQL 绑定接口 public interface UserInfoMapper  {  Select(select * from userinfo where userid #{userid})  public UserInfo getUserInfo(int userid);  }  // 接口绑定对应的数据访问方法 try  {  //UserInfo userinfo (UserInfo) sqlSession.selectOne  (mybatis.demo.UserInfoMapper.selectUser, 2);  UserInfoMapper userinfoMapper  sqlSession.getMapper(UserInfoMapper.class);  UserInfo userinfo userinfoMapper.getUserInfo(1);  System.out.println(userinfo);  } finally  {  sqlSession.close();  } MyBatis 映射文件的改变MyBatis 针对映射文件进行格式调整的地方很多但大部分仅仅只是名称上的变化现代的 IDE 都支持联想功能可以很方便的获取到当前位置可以有哪些元素、哪些属性等。所以这基本不会给开发者造成什么麻烦。针对映射文件首先是一系列的属性名称的改变这些仅仅是名称的改变用法和含义并没有发生变化和全局配置文件一样由于 DTD 约束发生变化根元素也由原来的 sqlMap 调整为 mapper。select 等元素的 parameterClass 属性改为了 parameterType 属性。select 等元素的 resultClasss 属性改为了 resultType 属性。parameterMap 等元素的 class 属性改为了 type 属性。result 元素的 columnIndex 属性被移除了。嵌套参数由 #value# 改为了 #{value}。parameter 等元素的 jdbcType 属性取值中原来的 ORACLECURSOR 取值改为了现在的 CURSORNUMBER 取值改为了 NUMERIC。iBatis/MyBatis 对存储过程的支持一直是值得称道的。之前通过使用 procedure 元素进行存储过程的定义示例如下清单 12. iBatis 中调用存储过程的方式 procedure idgetValues parameterMapgetValuesPM     { ? call pkgExample.getValues(p_id ?) }  /procedure 在 MyBatis 中proccedure 元素已经被移除通过 select、insert 和 update 进行定义清单 13. MyBatis 中调用存储过程的方式 select idgetValues parameterMapgetValuesPM statementTypeCALLABLE     { ? call pkgExample.getValues(p_id ?)}  /select 如上所示通过 statementType 属性将该语句标识为存储过程而非普通 SQL 语句。代码层面的改变通过前面的示例可以看出MyBatis 在编码中的最大的改变就是将一个最常用的 API 由 SqlMapClient 改为了 SqlSessionFactory。另外类型处理器接口也由原来的 TypeHandlerCallback 改为了 TypeHandler。最后 DataSourceFactory 也进行了调整移动到 org.apache.ibatis.datasource 包下其中的方法也作了微调。总之代码层面公开的部分改动较少不会给开发者造成较大的移植成本。总结本文主要描述了从 iBatis 向 MyBatis 移植过程中可能遇到的问题大部分的变化已经体现在上文中如果希望从头开始学习 MyBatis则建议从头开始阅读官方的 user guide 文档。 转载于:https://blog.51cto.com/3001448/1202424

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站全程指导wordpress免费资源模板

jSignature签名的用法1、先看看效果以后最后它是什么格式的2、先去下载该js3、下载以后就把它引入我们的HTML中4、看一下我的例子吧!下期我们在讲,怎么把base64在后台处理,然后在存进我们指定的位置,以及怎么存数据库;…

2025 年氨基酸水溶肥厂家最新推荐榜单:聚焦花芽分化膨果上色需求,精选优质企业助农户科学选购花芽分化/膨果上色/促花稳果/低温酶解氨基酸水溶肥厂家推荐

当前农业生产中,氨基酸水溶肥因能助力作物花芽分化、促进膨果上色、实现促花稳果,成为农户提升作物产量与品质的关键农资。但市场上产品质量良莠不齐,部分产品存在氨基酸含量不达标、低温环境下吸收效率低、营养配比…

VMware ESXi 8.0U3g macOS Unlocker OEM BIOS 2.7 H3C 新华三 定制版

VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 H3C 新华三 定制版VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 H3C 新华三 定制版 VMware ESXi 8.0U3g macOS Unlocker & OEM BIOS 2.7 标准版和…

保定网站维护做动漫头像的网站

在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统&…

2025 年最新防火涂料厂家排行榜:钢结构各类防火涂料优质厂家最新推荐,助力建筑安全选型 钢结构/水性/隧道/环保/饰面型防火涂料厂家推荐

随着建筑行业对防火安全重视程度的不断提升,防火涂料作为关键防护材料,其市场需求持续增长,但市场中产品质量参差不齐、品牌鱼龙混杂的问题也愈发凸显。部分品牌产品防火性能不达标、耐久性差,难以在火灾中发挥有效…

买极速赛车网站会动手做不毕业生登记表自我鉴定模板

1、 Response body:Containing string为中文 Response body:Containing string:为中文时,转换为unicode编码,并添加转义符。 2、get方式与post请求使用环境变量 post方式请求,请求体中包含有环境变量,引用方法: JSON格…

用群晖做网站服务器长治市住房保障和城乡建设管理局网站

dpdk原理 1、操作系统、计算机网络诞生已经几十年了,部分功能不再能满足现在的业务需求。如果对操作系统做更改,成本非常高,所以部分问题是在应用层想办法解决的,比如前面介绍的协程、quic等,都是在应用层重新开发的框…

做古玩的网站wordpress属于

目标是比开源精神疾病提供的基本报告更深入地挖掘,并了解更多属性之间的相互作用,这可以为所描述的决策者提供信息。 考虑的问题点: 不同性别属性的员工心理健康是否存在显着差异?不同年龄属性的员工心理健康是否存在显着差异&a…

[计算机组成] 计算机字体文件及其运行原理

0 序python的图形绘制库matplotlib默认不支持中文,但可支持通过集成第三方的中文字体文件后渲染中文:import numpy as np from matplotlib import pyplot as plt import matplotlib# 加载指定的字体文件 # 1. fname …

免费写作文网站搜索引擎环境优化

效果:在点击提交按钮时,首先进行js判断, 如果不符合条件,则alert出提示信息,并return false. 主要点就在于给form表单添加一个onsubmit事件. 在onsubmit事件中定义的函数里进行js验证处理.代码 : <!DOCTYPE html> <html lang"en"> <head><meta …

后量子密码技术延迟随数据量增加而降低

本文探讨了后量子密码算法对TLS 1.3连接性能的影响,通过时间到最后字节指标评估数据密集型连接中ML-KEM和ML-DSA算法的实际表现,研究发现随着传输数据量增加,后量子密码带来的延迟影响显著降低。后量子密码技术延迟…

[android]MT6835 Android 指令启动MT6631 wifi操作说明 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理 - 详解

深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理 - 详解2025-10-08 14:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !…

物流业网站建设方案实验总结商城网站系统建设方案

摘要 信息技术永远是改变生活的第一种创新方式&#xff0c;各种行业的发展更是脱离不了科技化的支持。原本传统的行业正在被科技行业的切入悄悄的发生变化。就拿我们生活当中常见的事情举例而言&#xff0c;在外卖行业还没有发展的快速的时候&#xff0c;方便面等速食成了快速吃…

做网站自己买服务器吗网站开发培训少儿

今天一个同事跟我说磁盘爆了&#xff0c;df -h 查看磁盘使用率显示确实是100%&#xff0c;但是我du -sh *查看磁盘使用情况时&#xff0c;又发现磁盘情况根本不可能占满。磁盘是40G&#xff0c;使用顶多在10G&#xff0c;那还有的30多G去哪了呢。 因为之前出现过磁盘占满的情况…

2025 南昌装修公司最新推荐榜单:权威解析本土标杆与新锐品牌,助力品质家装决策南昌装修设计 / 南昌装修设计师公司推荐

随着南昌家装市场规模持续扩大,装配式装修等新技术加速渗透,消费者对装修品质的需求不断升级,但市场乱象仍未根除。部分品牌以低价噱头掩盖材料劣质、工艺粗糙的问题,墙面开裂、甲醛超标等投诉频发;还有品牌缺乏标…

网站开发的硬件环境和软件怎么写凡科网站建设

4月30日&#xff0c;“启明星辰集团年度业绩说明与战略发布会”在上海成功举办&#xff0c;启明星辰集团总裁严立、集团CFO张媛、集团董秘姜朋出席会议&#xff0c;为投资者、用户、媒体解读企业未来战略布局&#xff0c;就行业状况、生产经营、财务状况进行说明&#xff0c;探…

搜狗站长平台长沙网站制作公司在哪里

C语言文件操作 在C语言中&#xff0c;文件操作主要是通过标准库函数来实现的。 今天有时间就来学习下一些常用的文件操作函数&#xff1a; C 语言提供了一个 FILE 数据结构&#xff0c;记录了操作一个文件所需要的信息。该结构定义在头文件stdio.h&#xff0c;所有文件操作函…