通过示例休眠–第1部分(删除孤儿)

所以我想做一系列的冬眠例子,展示冬眠的各种特征。 在第一部分中,我想展示有关删除孤儿功能及其在故事情节中的使用方法。 因此,让我们开始:)

先决条件

为了尝试以下示例,您将需要以下提到的JAR文件:

  • org.springframework.aop-3.0.6.RELEASE.jar
  • org.springframework.asm-3.0.6.RELEASE.jar
  • org.springframework.aspects-3.0.6.RELEASE.jar
  • org.springframework.beans-3.0.6.RELEASE.jar
  • org.springframework.context.support-3.0.6.RELEASE.jar
  • org.springframework.context-3.0.6.RELEASE.jar
  • org.springframework.core-3.0.6.RELEASE.jar
  • org.springframework.jdbc-3.0.6.RELEASE.jar
  • org.springframework.orm-3.0.6.RELEASE.jar
  • org.springframework.transaction-3.0.6.RELEASE.jar。
  • org.springframework.expression-3.0.6.RELEASE.jar
  • commons-logging-1.0.4.jar
  • log4j.jar
  • aopalliance-1.0.jar
  • dom4j-1.1.jar
  • hibernate-commons-annotations-3.2.0.Final.jar
  • hibernate-core-3.6.4.Final.jar
  • hibernate-jpa-2.0-api-1.0.0.Final.jar
  • javax.persistence-2.0.0.jar
  • jta-1.1.jar
  • javassist-3.1.jar
  • slf4j-api-1.6.2.jar
  • mysql-connector-java-5.1.13-bin.jar
  • commons-collections-3.0.jar

对于希望eclipse项目进行尝试的任何人,您都可以在此处下载带有上述JAR依赖项的文件。

简介

成立于2011年。正义联盟(Justice League)的规模过大,正在寻找开发商来帮助创建超级英雄注册系统。 熟悉Hibernate和ORM的开发人员已准备好使用Hibernate来完成系统和处理持久层的工作。 为简单起见,他将使用一个简单的独立应用程序来保留超级英雄。 这是此示例的布局方式:

  • 桌子设计
  • 域类和Hibernate映射
  • DAO和服务类
  • 应用程序的Spring配置
  • 一个简单的主类,展示所有工作原理

让旅程开始……………………。

表格设计:

设计由三个简单的表格组成,如下图所示;

如您所见,它是一个简单的一对多关系,由联接表链接。 Hibernate将使用Join Table来填充域类中的Super hero列表,我们将在下一步继续查看。

域类和Hibernate映射:

与主要拥有实体(正义联盟实体)链接的联接表主要只有两个域类。 因此,让我们继续看看如何使用注释构造域类。

package com.justice.league.domain;import java.io.Serializable;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;import org.hibernate.annotations.Type;@Entity
@Table(name = "SuperHero")
public class SuperHero implements Serializable {/*** */private static final long serialVersionUID = -6712720661371583351L;@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "super_hero_id")private Long superHeroId;@Column(name = "super_hero_name")private String name;@Column(name = "power_description")private String powerDescription;@Type(type = "yes_no")@Column(name = "isAwesome")private boolean isAwesome;public Long getSuperHeroId() {return superHeroId;}public void setSuperHeroId(Long superHeroId) {this.superHeroId = superHeroId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPowerDescription() {return powerDescription;}public void setPowerDescription(String powerDescription) {this.powerDescription = powerDescription;}public boolean isAwesome() {return isAwesome;}public void setAwesome(boolean isAwesome) {this.isAwesome = isAwesome;}}

因为我将MySQL用作主要数据库,所以我将GeneratedValue策略用作GenerationType.AUTO ,只要创建了新的超级英雄,它将自动进行递增。 所有其他映射都为大家所熟悉,除了
我们将布尔值映射到数据库中Char字段的最后一个变量。

我们在数据库字段中使用Hibernate的@Type批注将true&false表示为Y&N。 Hibernate有许多@Type实现,您可以在这里阅读。 在这种情况下,我们使用了这种类型。

好了,现在我们有了代表超级英雄的班级,让我们继续看一下我们的正义联盟领域的模样,这将保留所有对联盟表示忠诚的超级英雄。

package com.justice.league.domain;import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;@Entity
@Table(name = "JusticeLeague")
public class JusticeLeague implements Serializable {/*** */private static final long serialVersionUID = 763500275393020111L;@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "justice_league_id")private Long justiceLeagueId;@Column(name = "justice_league_moto")private String justiceLeagueMoto;@Column(name = "number_of_members")private Integer numberOfMembers;@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, orphanRemoval = true)@JoinTable(name = "JUSTICE_LEAGUE_SUPER_HERO", joinColumns = { @JoinColumn(name = "justice_league_id") }, inverseJoinColumns = { @JoinColumn(name = "super_hero_id") })private List<SuperHero> superHeroList = new ArrayList<SuperHero>(0);public Long getJusticeLeagueId() {return justiceLeagueId;}public void setJusticeLeagueId(Long justiceLeagueId) {this.justiceLeagueId = justiceLeagueId;}public String getJusticeLeagueMoto() {return justiceLeagueMoto;}public void setJusticeLeagueMoto(String justiceLeagueMoto) {this.justiceLeagueMoto = justiceLeagueMoto;}public Integer getNumberOfMembers() {return numberOfMembers;}public void setNumberOfMembers(Integer numberOfMembers) {this.numberOfMembers = numberOfMembers;}public List<SuperHero> getSuperHeroList() {return superHeroList;}public void setSuperHeroList(List<SuperHero> superHeroList) {this.superHeroList = superHeroList;}}

这里要注意的重要事实是注释@OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.EAGER,orphanRemoval = true) 。 在这里,我们设置了orphanRemoval = true

那到底是做什么的呢?
好吧,假设您的联赛中有一群超级英雄。 并说一个超级英雄是干草堆。 所以我们需要从联盟中移除他/她。 使用JPA级联,由于无法检测孤立记录,因此这是不可能的 然后您将拥有删除了“超级英雄”的数据库,而您的收藏中仍然有对它的引用。

在JPA 2.0之前,您没有orphanRemoval支持,并且是删除孤立记录的唯一方法
是要使用以下Hibernate特定(或ORM特定)注释,现在已弃用 ;

@ org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)

但是,通过引入属性orphanRemoval,我们现在能够通过JPA处理孤立记录的删除。

现在我们有了Domain类

DAO和服务类:

为了保持良好的设计标准,我将DAO(数据访问对象)层和服务层分开。 因此,让我们看一下DAO的界面和实现。 请注意,我有
通过HibernateDAOSupport使用了HibernateTemplate ,从而避免了任何特定于Hibernate的细节,并使用Spring以统一的方式访问所有内容。

package com.justice.league.dao;import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;import com.justice.league.domain.JusticeLeague;@Transactional(propagation = Propagation.REQUIRED, readOnly = false)  
public interface JusticeLeagueDAO {public void createOrUpdateJuticeLeagure(JusticeLeague league);public JusticeLeague retrieveJusticeLeagueById(Long id);
}

在接口层中,我已根据需要定义了事务处理。 这样做是为了使每当不需要事务时,您都可以在该特定方法的方法级别定义它,在更多情况下,您将需要事务
除了数据检索方法。  

根据JPA规范,您需要一个有效的事务来执行插入/删除/更新功能

因此,让我们看一下DAO的实现;

package com.justice.league.dao.hibernate;import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;import com.justice.league.dao.JusticeLeagueDAO;
import com.justice.league.domain.JusticeLeague;@Qualifier(value="justiceLeagueHibernateDAO")
public class JusticeLeagueHibernateDAOImpl extends HibernateDaoSupportimplements JusticeLeagueDAO {@Overridepublic void createOrUpdateJuticeLeagure(JusticeLeague league) {if (league.getJusticeLeagueId() == null) {getHibernateTemplate().persist(league);} else {getHibernateTemplate().update(league);}}@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = false)  public JusticeLeague retrieveJusticeLeagueById(Long id){return getHibernateTemplate().get(JusticeLeague.class, id);}}

在这里,我定义了一个@Qualifier,以让Spring知道这是DAO类的Hibernate实现。 请注意以休眠结尾的软件包名称。 在我看来,这是一个很好的设计概念,可遵循的将您的实现分离为
分开包装以保持设计整洁。

好的,让我们继续进行服务层的实现。 在这种情况下,服务层只是充当调用DAO方法的中介层。 但是在现实世界的应用程序中,您可能会在服务层中进行其他验证,与安全性相关的过程等。

package com.justice.league.service;import com.justice.league.domain.JusticeLeague;public interface JusticeLeagureService {public void handleJusticeLeagureCreateUpdate(JusticeLeague justiceLeague);public JusticeLeague retrieveJusticeLeagueById(Long id);
}
package com.justice.league.service.impl;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;import com.justice.league.dao.JusticeLeagueDAO;
import com.justice.league.domain.JusticeLeague;
import com.justice.league.service.JusticeLeagureService;@Component("justiceLeagueService")
public class JusticeLeagureServiceImpl implements JusticeLeagureService {@Autowired@Qualifier(value = "justiceLeagueHibernateDAO")private JusticeLeagueDAO justiceLeagueDAO;@Overridepublic void handleJusticeLeagureCreateUpdate(JusticeLeague justiceLeague) {justiceLeagueDAO.createOrUpdateJuticeLeagure(justiceLeague);}public JusticeLeague retrieveJusticeLeagueById(Long id){return justiceLeagueDAO.retrieveJusticeLeagueById(id);}
}

这里没有什么要注意的。 首先,@ Component在春天上下文中将此服务实现与名称JusticeLeagueService绑定在一起,以便我们可以将bean称为ID为JusticeLeagueService的bean

并且我们已经自动连接了JusticeLeagueDAO并定义了一个@Qualifier,以便它将绑定到Hibernate实现。

Qualifier的值应与我们在DAO Implementation类中为类级别Qualifier赋予的名称相同。

最后,让我们看一下将所有这些连接在一起的Spring配置。

应用程序的Spring配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"><context:component-scan base-package="com.justice.league" /><context:annotation-config /><tx:annotation-driven /><bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="packagesToScan"><list><value>com.justice.league.**.*</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop><prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/my_test</prop><prop key="hibernate.connection.username">root</prop><prop key="hibernate.connection.password">password</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property></bean><bean id="justiceLeageDAO"class="com.justice.league.dao.hibernate.JusticeLeagueHibernateDAOImpl"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean></beans>

请注意,在我单独运行它的情况下,我在此实例中使用了HibernateTransactionManager 。 如果你是
在应用服务器中运行它,您几乎总是会使用JTA事务管理器。

为了简化起见,我还使用了由hibernate自动创建表的方法。 packagesToScan属性指示扫描根包com.justice.league。**。*下的所有子包(包括嵌套在其中的嵌套包)为
扫描@Entity注释的类。

我们还将会话工厂限制在了JusticeLeagueDAO上,以便我们可以使用Hibernate Template。

为了进行测试,您可以根据需要最初使用标签<prop key =“ hibernate.hbm2ddl.auto”> create </ prop> ,然后让hibernate为您创建表。

好了,现在我们已经看到了应用程序的构建块,让我们首先在正义联盟内创建一些超级英雄,看看它们如何工作

一个简单的主类来展示所有工作原理:

作为第一个示例,让我们看看我们将如何通过几个超级英雄来维持正义联盟。

package com.test;import java.util.ArrayList;
import java.util.List;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.justice.league.domain.JusticeLeague;
import com.justice.league.domain.SuperHero;
import com.justice.league.service.JusticeLeagureService;public class TestSpring {/*** @param args*/public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");JusticeLeagureService service = (JusticeLeagureService) ctx.getBean("justiceLeagueService");JusticeLeague league = new JusticeLeague();List<SuperHero> superHeroList = getSuperHeroList();league.setSuperHeroList(superHeroList);league.setJusticeLeagueMoto("Guardians of the Galaxy");league.setNumberOfMembers(superHeroList.size());service.handleJusticeLeagureCreateUpdate(league);}private static List<SuperHero> getSuperHeroList() {List<SuperHero> superHeroList = new ArrayList<SuperHero>();SuperHero superMan = new SuperHero();superMan.setAwesome(true);superMan.setName("Clark Kent");superMan.setPowerDescription("Faster than a speeding bullet");superHeroList.add(superMan);SuperHero batMan = new SuperHero();batMan.setAwesome(true);batMan.setName("Bruce Wayne");batMan.setPowerDescription("I just have some cool gadgets");superHeroList.add(batMan);return superHeroList;}}

如果我们进入数据库并进行检查,我们将看到以下输出;

mysql> select * from superhero;
+---------------+-----------+-----------------+-------------------------------+
| super_hero_id | isAwesome | super_hero_name | power_description             |
+---------------+-----------+-----------------+-------------------------------+
|             1 | Y         | Clark Kent      | Faster than a speeding bullet |
|             2 | Y         | Bruce Wayne     | I just have some cool gadgets |
+---------------+-----------+-----------------+-------------------------------+mysql> select * from justiceleague;
+-------------------+-------------------------+-------------------+
| justice_league_id | justice_league_moto     | number_of_members |
+-------------------+-------------------------+-------------------+
|                 1 | Guardians of the Galaxy |                 2 |
+-------------------+-------------------------+-------------------+

如您所见,我们坚持了两位超级英雄,并将他们与正义联盟联系在一起。 现在,让我们看看下面的示例如何删除孤儿。

package com.test;import java.util.ArrayList;
import java.util.List;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.justice.league.domain.JusticeLeague;
import com.justice.league.domain.SuperHero;
import com.justice.league.service.JusticeLeagureService;public class TestSpring {/*** @param args*/public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");JusticeLeagureService service = (JusticeLeagureService) ctx.getBean("justiceLeagueService");JusticeLeague league = service.retrieveJusticeLeagueById(1l);List<SuperHero> superHeroList = league.getSuperHeroList();/*** Here we remove Batman(a.k.a Bruce Wayne) out of the Justice League* cos he aint cool no more*/for (int i = 0; i < superHeroList.size(); i++) {SuperHero superHero = superHeroList.get(i);if (superHero.getName().equalsIgnoreCase("Bruce Wayne")) {superHeroList.remove(i);break;}}service.handleJusticeLeagureCreateUpdate(league);}}

在这里,我们首先通过主键检索正义联盟的记录。 然后,我们循环浏览并从联盟中删除蝙蝠侠,然后再次调用createOrUpdate方法。 当我们定义了删除孤儿时,所有不在数据库列表中的超级英雄都将被删除。

再次,如果查询数据库,我们将看到蝙蝠侠已经按照以下说明被删除了;

mysql> select * from superhero;
+---------------+-----------+-----------------+-------------------------------+
| super_hero_id | isAwesome | super_hero_name | power_description             |
+---------------+-----------+-----------------+-------------------------------+
|             1 | Y         | Clark Kent      | Faster than a speeding bullet |
+---------------+-----------+-----------------+-------------------------------+

就是这样了。 正义联盟(Justice League)如何使用休眠模式自动删除蝙蝠侠而无需费心自己做的故事。

接下来,我们将期待美国队长如何使用休眠标准来构建灵活的查询,以便找到可能的敌人。 小心!!!!

祝大家有美好的一天,并感谢您的阅读!

如果您有任何建议或意见,请不要理会。

参考:“ 通过示例进行休眠–第1部分(除去孤儿)”,来自我们的JCG合作伙伴 Dinuka Arseculeratne,在“ My Journey Through IT”博客中

相关文章 :
  • 休眠陷阱
  • 休眠自动提交命令强制MySQL在过多的磁盘I / O中运行
  • DataNucleus 3.0与Hibernate 3.5
  • Hibernate映射集合性能问题
  • Spring MVC3 Hibernate CRUD示例应用程序
  • Java教程和Android教程列表

翻译自: https://www.javacodegeeks.com/2011/11/hibernate-by-example-part-1-orphan.html

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

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

相关文章

Win10手记-IIS部署网站问题解决

最近在自己的Win10电脑上尝试部署ASP.NET网站时出现了问题&#xff0c;经过多方查找定位到IIS为问题来源。 开始之前 先描述下技术环境&#xff1a; 1.Windows 10 PC 2.Windows 自带的IIS 7 3.ASP.NET Web API项目网站 4.VS 2015 问题描述 首先我们为PC安装IIS&#xff0c;按照…

CentOS 7 安装记录

由于centos6.4版本有点老&#xff0c;所以换到centos7。 1.安装 CentOS 7.0系统安装配置图解教程 2.linux设置网卡开机启动 实质linux是看一个网卡文件的配置&#xff0c;就是/etc/sysconfig/network-scripts/ifcfg-eth0 (这个文件名看你网卡名称而异&#xff0c;具体你到该目录…

通知栏发送消息Notification(可以使用自定义的布局)

一个简单的应用场景&#xff1a;假如用户打开Activity以后&#xff0c;按Home键&#xff0c;此时Activity 进入-> onPause() -> onStop() 不可见。代码在此时机发送一个Notification到通知栏。当用户点击通知栏的Notification后&#xff0c;又重新onRestart() -> onSt…

退出页面删除cookie_Cookie 机制

欢迎关注公众号 学习资料不会少01「HTTP 协议是无状态的」对于浏览器的每一次请求&#xff0c;服务器都会独立处理&#xff0c;不与之前或之后的请求发生关联。这个过程如图 11-1 所示&#xff0c;3次“请求&#xff0f;响应”之间没有任何关系。即使是同一个浏览器发送了3个请…

Oracle WebLogic Java云服务–幕后花絮。

在开放世界方面&#xff0c;发生的一件大事可能是出乎意料的消息&#xff0c;那就是Oracle最终支持云计算发展并提供自己的公共云服务 。 除了官方公告之外&#xff0c;Aquarium上&#xff08; 此处和此处 &#xff09;的内容或多或少都没有多少内容&#xff0c;您找不到很多信…

QT子窗口及停靠实现

Demo的效果 头文件中的变量声明 //退出动作QAction* exit;//菜单栏菜单QMenu* filemenu;QMenu* actiona;//在状态栏的标签控件QLabel* label;//两个停靠窗口QDockWidget *dockwidget;QDockWidget *dockwidget_textbox; CPP源文件中的对象定义 //创建初始化按钮,将要放到第一个窗…

Html转Word文档,解决无法保存网络图片的问题

最近项目中需要这个功能&#xff0c;网上有很多word转html的方法&#xff0c;但是html转word的方法很少&#xff0c;因为html中的图片转换到本地比较麻烦&#xff1b; 开始的时候只能转换不带图片的html内容&#xff0c;但是不符合要求&#xff0c;将html页面中的图片改成绝对路…

Android实现推送方式解决方案

Android实现推送方式解决方案 本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了&#xff0c;不说别的&#xff0c;就我们手机上的新闻客户端就时不j时的推送过来新的消息&#xff0c;很方便的阅读最新的新闻信息。这种推…

java基础知识系列---垃圾收集

1 为什么要使用垃圾回收机制&#xff1f; “垃圾收集”暗示程序不再需要的对象就是垃圾&#xff0c;可以被丢弃。更精确&#xff0c;更新的说法是“内存回收”。 1.1 新对象的使用 当一个对象不再被程序所引用时&#xff0c;他所使用的堆空间可以被回收&#xff0c;以便于被后续…

如何部署Zabbix服务端

部署环境 RHEL 6.7 Zabbix-server 2.2.14 安装zabbix官方源 # wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm # rpm -ivh zabbix-release-2.2-1.el6.noarch.rpm 安装zabbix-server # yum install zabbix zabbix-server-mysql zab…

Oracle JRockit Mission Control 4.1发布

Oracle发布了以前的仅JRockit专用工具Mission Control Suite&#xff08;JRMC&#xff09;的新版本。 4.1版本是次要版本升级&#xff0c;直接遵循4.0.1&#xff08;该版本发布于2010年中期&#xff09;。 但是&#xff0c;即使版本号表明是次要的升级&#xff0c;您仍然可以在…

pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知

电脑店U盘启动盘制作工具集成最全面的硬件驱动&#xff0c;精心挑选的系统维护工具&#xff0c;加上独有人性化的设计&#xff0c;具备较强的兼容性、稳定性和安全性。能够完美兼容台式机、品牌机及笔记本等新老机型&#xff0c;且安全无毒&#xff0c;电脑店一键U盘启动盘制作…

python ATM购物程序

需求&#xff1a; 模拟实现一个ATM 购物商城程序 额度 15000或自定义实现购物商城&#xff0c;买东西加入 购物车&#xff0c;调用信用卡接口结账可以提现&#xff0c;手续费5%每月22号出账单&#xff0c;每月10号为还款日&#xff0c;过期未还&#xff0c;按欠款总额 万分之5…

postman使用_postman如何使用集合断言?

在postman中&#xff0c;大家都使用过断言&#xff0c;但是我们使用的断言都是针对每一个接口或者是每一个用例添加的&#xff0c;那么是否有可以同时对多个用例或接口添加断言呢 &#xff1f; 答案是肯定有的。那么接下来我就带领大家认识下Postman中的批量断言&#xff0c;也…

centos和ubuntu下使用cron设置定时任务

1.启动cron工具[ps:使用root权限] centos启动cron两种方式 a) /etc/init.d/crond start b) service crond start ubuntu启动cron两种方式 a) /etc/init.d/cron start b) service cron start(推荐) 2.添加定时任务[每个整点执行ls命令] centos crontab -e命令打开文件 添加一行:…

原生js使用forEach()与jquery使用each遍历数组,return false 的区别

原生js使用forEach()与jquery使用each()遍历数组&#xff0c;return false 的区别&#xff1a; 1、使用each()遍历数组a,如下&#xff1a; var a[20,21,22,23,24];$.each(a, function(index,val) {console.log(indexindex);if(index2){return false;}console.log(valval);}); …

配置Java EE应用程序或“将Bien付诸实践”

过去&#xff0c;有关应用程序配置的讨论很多。 我不知道谁拉开了辩论的序幕&#xff0c;但是最基础的阅读&#xff08;着眼于未来的Java EE 7及更高版本&#xff09;是Antonio Goncalves的帖子[辩论] – Java EE 7中的配置如何 &#xff1f; 事实是&#xff0c;使用香草Java E…

HTML5 Canvas入门

HTML5的canvas&#xff08;画布&#xff09;元素使用JavaScript在网页上绘制图像。下面以一个简单例子及其效果图&#xff08;图1&#xff09;开始&#xff1a; <!DOCTYPE HTML> <html><head><style type"text/css"> canvas{border:dashed 2…

泄漏:Oracle WebLogic Server 12g

JavaOne已经比我们落后了将近一个星期&#xff0c;我仍在撰写有关它的详细博客文章 。 我真的很惊讶的事实是&#xff0c;我没有看到任何提及我最喜欢的应用程序服务器更新的事实。 是的&#xff0c;我喜欢WebLogic产品。 从一开始。 自从收购BEA以来&#xff0c;甲骨文一直对我…

画家问题

【题目描述】 有一个正方形的墙&#xff0c;由N*N个正方形的砖组成&#xff0c;其中一些砖是白色的&#xff0c;另外一些砖是黄色的。Bob是个画家&#xff0c;想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i,j)个位置的砖时&#xff0c;位置(i-1,j)、(i1,j)、(…