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

营销网站模版官方网站下载zoom

营销网站模版,官方网站下载zoom,wordpress手机全部显示,网站建设与管理实用教程课后答案上一篇文章中我把一些关键的类以及表示出来#xff0c;如何对这些类对应的对象进行管理呢#xff1f;管理分为硬盘和内存上#xff0c;硬盘又分为数据库#xff08;管理交换机#xff0c;队列和绑定#xff09;和文件#xff08;管理消息#xff09;#xff0c;本文就…        上一篇文章中我把一些关键的类以及表示出来如何对这些类对应的对象进行管理呢管理分为硬盘和内存上硬盘又分为数据库管理交换机队列和绑定和文件管理消息本文就是讨论的数据库上的管理。 此处为了使用更加方便简化环境采用更加轻量的数据库——SQLite它是一个本地数据库相当于直接操作本地的硬盘文件。 当在idea中配置好SQLiite数据库后就需要建库建表由于把配置依赖准备好之后就会自动的建库因此我们这里主要关注的是建表数据库存储的是交换机队列和绑定因此应该针对三者建立不同的表。可以根据之前创建的核心类进行设计表。那么上述的建表操作什么时机来执行,可能程序需要反复部署多次为了简化部署的步骤可以通过代码自动完成建表的操作。 为了自动完成建表操作首先创建一个接口内有需要建表的方法然后实现对应的xml文件通过xml实现接口中的抽象方法。对与建表操作我们使用undata标签。最终我们根据定义的类建立了三张表但是对于其中的arguments,由于是Map属性 为了把arguments 存到数据库中需要把Map转化为json格式的字符串。 import org.apache.ibatis.annotations.Mapper;Mapper public interface MetaMapper {// 三个核心建表方法void createExchangeTable();void createQueueTable();void createBindingTable(); } 当前,是把每个建表语句,都单独的列为一个 update 标签, 并且对应一个 java 方法,能否改成,一个 update 标签中包含多个 建表语句,同时借助一个 java 方法,完成上述多个表的创建呢? MyBatis 支持,一个 标签 中包含多个 sq| 语句的(前提是,搭配 MySQL 或者 Oracle).对于 SQLite,无法做到上述功能的当你一个 update 标签中,写了多个 create table 语句的时候,只有第一个语句能执行. 如何实现把 arguments 这个键值对,和数据库中的字符串类型相互转换呢? 关键在于, MyBatis 在完成数据库操作的时候,会自动的调用到对象的 getter 和 setter. 比如 MyBatis 往数据库中写数据, 就会调用对象的 getter 方法,拿到属性的值,再往数据库中写。如果这个过程中,让 getArquments 得到的结果是 String 类型的,此时,就可以直接把这个数据写到数据库了比如 MyBatis 从数据库读数据的时候,就会调用对象的 setter 方法,把数据库中读到的结果设置到对象的属性中.如果这个过程中,让 setArguments,参数是一个 String,并且在 setArquments 内部针对字符串解析,解析成一个 Map 对象 因此我们需要自己写Exchange类的getArguments和setArguments方法其中getArguments用于MyBatis 往数据库中写数据因此将Map转为Json类型的字符串。从数据库读数据之后构造Exchange对象会自动调用到setArguments是把arguments从json格式的字符串转化为Map 第二个参数,用来描述当前 json 字符串, 要转成的 java 对象是什么类型的.如果是个简单类型直接使用对应类型的类对象即可如果是集合类这样的复杂类型可以使用 TypeReference 匿名内部类对象来描述复杂类型的具体信息,(通过泛型参数来描述的) 对于 交换机 和 队列 这两个表,由于使用 name 作为主键,直接按照 name 进行删除即可,对于绑定来说,此时没有主键,删除操作,其实是针对 exchangeName 和 queueName 两个维度进行筛选.。之后需要在接口中声明三个核心增删方法然后需要在xml文件中写出insert和delete语句。如下 其中的#{}:MyBatis 看到这个, 就会通过 getArguments 方法, 来获取到这个参数的内容,此处数据库中期望的类型是 String, 此处也就需要让 getArguments 能够得到 String。 此时我们把数据库的基本操作已经借助MyBatis封装完成。接下来写一个类整合上面的操作。首先是数据库的初始化此处使用的是一个普通的方法。数据库的初始化建库建表 插入一些默认数据我们期望, 在咱们的 broker server 启动的时候, 做出下列逻辑判定: 1.如果数据库已经存在了,(表啥的都有了),不做任何操作. 2.如果数据库不存在, 则创建库,创建表,构造默认数据 数据库判断是否存在就判定 meta.db 这个文件是否存在即可。根据以上逻辑编写完成代码之后发现一些方法涉及到mapper的相关调用那么此时mapper需要保证是被构造出来的那么如何进行实例化Mapper是通过Mybatis进行操作的换句话说Mapper已经被注册到spring里面了直接从spring里面拿到现成的对象。常用是Autowired,但是前提是外面的类是一个注册在spring中的对象但是现在并不打算让类是一个Bean对象因为后面还需要手动进行管理然后构造整体的结构因此此时不可以用Autowired需要手动的构造。在启动类添加一个静态成员在下面的main方法中将run方法的返回结果赋值到静态成员此时借助这个静态成员可以手动的获取指定的bean对象了。接下来在类中完成接口的三个核心insert和delete方法可以增加select操作。最后进行测试。 设计单元测试要求单元测试用例和用例之间是需要相互独立的互不干扰的。因此可以这样子每个用例执行之前先执行一段逻辑搭建测试的环境准备好测试用的东西每个用例执行之后再执行一段逻辑把用例执行过程中产生的中间结果的影响给消除掉。即“准备工作”和“收尾工作”,加上注解。 准备工作对数据库进行初始化操作由于init方法需要手动获取metaMapper,依赖于context对象因此在测试用例中也需要context对象.         收尾工作前面是数据库初始化因此这里要清空数据库,在清空时注意此处不能直接就删除, 而需要先关闭上述 context 对象!! 此处的 context 对象, 持有了 MetaMapper 的实例, MetaMapper 实例又打开了 meta.db 数据库文件。如果 meta.db 被别人打开了, 此时的删除文件操作是不会成功的 (Windows 系统的限制, Linux 则没这个问题)另一方面, 获取 context 操作, 会占用 8080 端口. 此处的 close 也是释放 8080. 测试工作 首先需要测试init方法由于init方法已经在上面setUp调用过了因此直接在测试代码中检查当前数据库的状态即可。直接从数据库中查询. 看数据是否符合预期。什么时符合预期的情况查交换机表, 里面应该有一个数据(匿名的 exchange); 查队列表, 没有数据; 查绑定表, 没有数据。各自调用select方法进行赋值得到的结果可以直接打印但是这样子不够优雅更好的做法是使用断言assertEquals()方法用以判定结果是不是相等里面两个参数第一个形参叫做 expected (预期的), 第二个形参叫做 actual (实际的)。 其次测试交换机的插入思路是构造一个交换机插入到数据库中再次查询数据库检查是否符合预期对于构造交换的的方法其中有一个参数是setArguments,由于此时的测试并不需要一些返回值因此需要再写它的set和get方法用于测试。之后应用断言进行结果的查询比对。         测试交换机的删除如下 同理DataBaseManager的队列和绑定也是先创建对象在测试插入和删除。 如何写测试用例更加的严禁呢
http://www.ho-use.cn/article/10820279.html

相关文章:

  • 做网站一般几个人完成宁波网页设计的技术要求
  • 阿里云服务器做网站安全吗云南建设网站首页
  • 网站定位有哪些杭州市在建工程项目
  • 邢台做网站优化价格网站的优点有哪些
  • 网站seo哪家好网站建设yingkagou
  • 阿里云自助建站和华为云自助建站工商局网站怎么做身份确认
  • 恩施网站建设什么程序做网站
  • 做暖dnf动态ufo网站wordpress编写博客时如何写出代码
  • 电商网站开发重难点营销型网站建站
  • 长沙品牌网站建设实力强徐州微网站开发
  • 陇西学做网站廊坊网站搭建
  • 网站开发属于哪个部门关键词优化一般收费价格
  • 自己网站做问卷调查asp.net做的小网站
  • 新手做网站最简单流程抚州南城网站建设
  • 百度网站降级的原因淘宝网站开发框架
  • 轻量应用服务器可以做网站吗皮肤科在线医生免费咨询
  • 汉中公司做网站微网站建设是什么
  • 接网站制作网站建设与推广的策划方案
  • 个人如何申请网站合肥网站排名推广
  • 岳阳市规划局建设工程公示网站设计机构
  • 吉林市网站制作哪家好免费网站源码建站系统
  • 西宁网站公司张家界网站制作
  • 建设中标查询网站中企动力做网站 知乎
  • 机械网站开发方案苏州网站建设教程
  • 郑州网站推广排名wordpress编辑写文章失败
  • 网站建设项目实践报告书网络seo优化平台
  • cookie做网站访问量wordpress自动抓取
  • 免费货源在线网站跨境电商平台开发
  • 产品展示网站方案网站建设工作策划方案
  • 最新网站建设高端个人网站