该方法实现读取本地文件--》解析文件(调用其他方法)-》操作完改数据库状态
public static void analysis(String test_name,int do_number){
// String test_name,test_result;
// int do_number;
String result;
int id;
try {
//register driver and connect the database
Class.forName("com.mysql.jdbc.Driver");
try {
String url = String
.format("jdbc:mysql://%s/%s", host, database);
con = DriverManager.getConnection(url, username, pwd);
statement = con.createStatement();
statement1=con.createStatement();
statement2=con.createStatement();
FileWriter fw=null;
rs = statement.executeQuery("SELECT id FROM service_testcase WHERE test_name ='"+test_name+"'");
if(rs.next()){
try{
id = rs.getInt("id");//1 id
System.out.println("id,testcase_id is "+id);
rs1 = statement.executeQuery("SELECT result FROM service_jmetertask WHERE testcase_id ='"+id+"' and do_number ='"+do_number+"' and status = 3");//通过id+do_number+status的到result
if(rs1.next()){
try{
result = rs1.getString("result");
//将结果写入jtl文件
//anlyaze xml file
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
/* PathMatchingResourcePatternResolver是一个通配符的Resource查找器,包括:
/WEB-INF/*-context.xml
com/mycompany/**/applicationContext.xml
file:C:/some/path/*-context.xml
classpath:com/mycompany/**/applicationContext.xml
类文件等*/
Resource[] resources = resolver.getResources("file:"+result);
-----------------------------------------------------------------------------------------------------------------------------------------
java代码:
查看复制到剪贴板打印 @Test public void testClasspathAsteriskPrefixLimit() throws IOException { ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); //将首先通过ClassLoader.getResources("")加载目录, //将只返回文件系统的类路径不返回jar的跟路径
//然后进行遍历模式匹配 Resource[] resources = resolver.getResources("classpath*:asm-*.txt"); Assert.assertTrue(resources.length == 0); //将通过ClassLoader.getResources("asm-license.txt")加载 //asm-license.txt存在于com.springsource.net.sf.cglib-2.2.0.jar resources = resolver.getResources("classpath*:asm-license.txt"); Assert.assertTrue(resources.length > 0); //将只加载文件系统类路径匹配的Resource resources = resolver.getResources("classpath*:LICENS*"); Assert.assertTrue(resources.length == 1); }
对于“resolver.getResources("classpath*:asm-*.txt");”,由于在项目“resources”目录下没有 所以应该返回0个资源;“resolver.getResources("classpath*:asm-license.txt");”将返回jar包 里的Resource;“resolver.getResources("classpath*:LICENS*");”,因为将只返回文件系统类路径资 源,所以返回1个资源。
因此在通过前缀“classpath*”加载通配符路径时,必须包含一个根目录才能保证加载的资源是所有的,而不是部分。
三、“file”:加载一个或多个文件系统中的Resource。如“file:D:/*.txt”将返回D盘下的所有txt文件;
-----------------------------------------------------------------------------------------------------------------------------------------------
if(resources.length == 0) {
throw new IllegalArgumentException("Property source not set correctly, no JMeter Result XML file found matching "+result);
}
//get first file for now.
//TODO: what to do if there are more files matching the pattern?
File resource = resources[0].getFile();
//getFile():返回当前资源对应的File。如果当前资源不能以绝对路径解析为一个File则会抛出异常
Reader data;
if(resource.getName().endsWith(".gz")) {
data = new InputStreamReader(new GZIPInputStream(new FileInputStream(resource)));
}
else {
data = new FileReader(resource);
}
try {
new parser().analyze(data,id,test_name,do_number,username, pwd, host, database);//call the analyze() to get the results
}
finally {
data.close();
}
//更改service_jmetertask的status状态
String sql="UPDATE service_jmetertask SET status= 4 WHERE testcase_id = '"+id+"'";
try {
statement1.executeUpdate(sql);//use new connection to execute new sql
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
e.printStackTrace();
log.warn(e);
}
}catch(Exception e){
System.out.println("数据库读取错误rs");
e.printStackTrace();
log.warn(e);
}
}
}catch(Exception e){
System.out.println("数据库读取错误rs1");
e.printStackTrace();
log.warn(e);
}
}
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
相关推荐
Spring的Resource接口是访问资源的抽象,它提供了一种统一的资源访问方式,可以处理不同来源的资源,包括本地文件系统、类路径、URL等。Resource对象并不直接包含资源内容,而是提供了打开输入流、获取资源路径等...
在Spring框架中,ClassPathResource是获取类路径资源的一个重要工具。它允许我们从类路径(classpath)中读取文件,如配置文件、属性文件等,这对于构建和管理Java应用程序非常有用。本篇文章将深入探讨如何使用Spring...
在实际使用中,我们通常会通过Spring的`ApplicationContext`或者`ResourceLoader`来获取`Resource`实例,然后调用其`getInputStream()`方法获取输入流,进一步读取配置文件内容。例如: ```java Resource resource ...
9. **国际化与本地化**:Spring MVC提供了资源包(Resource Bundle)支持,可以实现多语言环境下的应用。使用LocaleResolver和MessageSource可以处理不同地区的语言和格式。 10. **RESTful API**:Spring MVC支持...
本文将详细介绍Spring如何通过`Resource`接口及其实现类来简化资源的访问。 首先,传统的资源访问方式通常依赖于`java.net.URL`和文件I/O操作,这种方式不仅代码复杂,而且效率较低。例如,在`URLTest`类中,我们...
RESTful是Representational State Transfer的缩写,是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以资源为中心,通过统一的URI(Uniform Resource Identifier)来定位资源,使用HTTP方法(GET、POST、PUT...
在这个类中,我们定义了一个静态方法`getBean`,通过传入Bean的名称,可以从Spring容器中获取对应的Bean实例。 ##### 3. 通过公共方法获取其他对象 一旦`ApplicationContextUtil`被配置并初始化,就可以通过调用其...
Resource接口是Spring提供的,用于抽象资源的访问,它可以是文件、URL、类路径下的资源等。通过Resource的实现类,如FileSystemResource或ClassPathResource,我们可以轻松地获取到文件的InputStream。 例如,对于...
首先,`ServletContextResource` 是 `Resource` 接口的一个实现,这个接口是Spring中用于表示资源的核心抽象。通过`ServletContextResource`,我们可以获取到Web应用上下文中的任何资源,例如在`WEB-INF`目录下的...
- **Resource接口**:Spring提供了一个统一的Resource接口来访问不同类型的资源。 - **ResourceLoader接口**:提供了获取Resource的方法,通常由ApplicationContext实现。 #### 3.2 内置Resource实现 - **ClassPath...
在 Spring 中,IOC 容器的实现基于 BeanFactory 接口,该接口定义了 IOC 容器的基本行为,包括获取 Bean 实例、判断 Bean 是否单例、获取 Bean 的别名等。 BeanFactory 接口的实现有多种,Spring 提供了多种 IOC ...
Spring框架中提供了Resource接口,用于抽象表示资源,可以是一个文件、一个URL或一个输入流等。在Spring中,我们可以使用Resource作为Bean的属性,从而实现对资源的访问和操作。 Resource的概念 在Spring中,...
- **功能**:`Resource`接口代表了一个可以访问的资源,它可以是文件系统上的文件、URL资源或其他任何形式的资源。 - **应用场景**:`XmlBeanFactory`使用`Resource`来封装XML配置文件,便于读取和管理。 #### 四、...
例如,一个简单的用户查询接口可能会这样定义: ```java @RestController public class UserController { @GetMapping("/users") public List<User> getUsers() { // 从数据库获取用户列表并返回 } } ``` 在...
- 使用静态工厂方法实例化:这种方式通过调用一个静态方法来获取Bean实例,适用于简单工厂模式。 - 使用实例工厂方法实例化:类似于静态工厂方法,但工厂方法是非静态的,需要先创建工厂类的实例后再调用。 - ...
`spring-core`模块包含了Spring的基本工具类和基础设施,如Resource接口、ConversionService接口等,为整个Spring框架提供了基础服务。此外,它还引入了ResourceLoader,用于加载各种类型的资源,如文件、URL、...
在Spring框架中,Resource接口是核心组件之一,用于表示应用程序中的资源,比如文件、网络连接、输入/输出流等。在上述代码示例中,我们可以看到两种Resource的实例化方式:FileSystemResource和ClassPathResource。...
**Resource接口** - **Resource**是Spring中对外部资源的抽象,主要用于文件的抽象,尤其是XML文件,其中通常包含了Spring用户的Bean定义。 - **Resource**接口提供了一套比Java标准的URL访问机制更为灵活和强大的...
这里我们有一个名为`IDAO`的接口,包含获取列表、按名称或ID获取、保存、删除和更新操作: ```java package ch10.SpringAndIbatis; import java.util.List; public interface IDAO { public List<Ibatis> ...
在Spring框架中,`Resource`接口扮演着至关重要的角色,它是Spring核心模块(`spring-core`)的一部分,用于抽象出各种不同类型和来源的资源访问。Spring通过`Resource`接口统一了对文件、网络、类路径等不同资源的...