@Test void testA() throws ClassNotFoundException, SQLException, FileNotFoundException { Class.forName("dm.jdbc.driver.DmDriver"); Connection connection = DriverManager .getConnection("jdbc:dm://localhost:5236/TEAM08", "SYSDBA", "SYSDBA"); PreparedStatement ps = connection .prepareStatement("insert into TEAM08.COMMON_META(sndr,rcvr,seqn,ddtm,type,styp) values (?,?,?,?,?,?)"); File file = new File("E://Temp//wu//BASE-APUE-20170606231907.xml"); Meta[] metas = XmlUtils.parseXml(new FileInputStream(file), Meta[].class); System.out.println(metas); for (Meta meta : metas) { System.out.println(meta); ps.setString(1, meta.getSndr()); ps.setString(2, meta.getRcvr()); ps.setLong(3, meta.getSeqn()); ps.setDate(4, (Date) meta.getDdtm()); ps.setString(5, meta.getType()); ps.setString(6, meta.getStyp()); ps.executeUpdate(); } connection.close(); ps.close(); } 为什么还是获取的是null
时间: 2024-02-14 14:33:44 浏览: 17
根据你提供的代码,如果获取的是null,可能有以下几个原因:
1. 数据库连接失败。请确认你的数据库是否已经启动,连接字符串是否正确,用户名和密码是否正确。
2. Meta类的属性值为null。请确认通过XmlUtils.parseXml解析XML文件返回的Meta[]数组中,Meta类的属性值是否为空。
3. PreparedStatement设置参数错误。请确认PreparedStatement设置参数的顺序和类型是否正确。
你可以逐一排查以上原因,以确定导致获取值为null的根本原因,并进行相应的修复。
相关问题
train = pd.read_csv('/mnt/workspace/downloads/94490/train.csv') test=pd.read_csv('/mnt/workspace/downloads/94490/testA.csv') train.head()
这是读取CSV文件的代码,将训练集和测试集数据存储到train和test变量中,并输出train的前几行数据。
其中,'/mnt/workspace/downloads/94490/train.csv'和'/mnt/workspace/downloads/94490/testA.csv'是文件的路径。
train.head()函数用于显示train数据集的前几行数据,默认显示前5行。
为什么采用MethodSorters.NAME_ASCENDING顺序类型,可以指定测试方法得执行顺
### 回答1:
MethodSorters.NAME_ASCENDING是JUnit4中提供的一种测试方法执行顺序类型,它会根据测试方法的名称按字典顺序进行排序,然后按照排序后的顺序依次执行测试方法。这个顺序可以确保测试方法的执行顺序是可控的,从而可以避免测试方法之间的依赖或冲突问题。
例如,如果有两个测试方法testA和testB,testA依赖于testB的结果,那么可以将它们命名为test1A和test2B,然后使用MethodSorters.NAME_ASCENDING顺序类型来确保test2B先执行,然后才能执行test1A。
需要注意的是,虽然MethodSorters.NAME_ASCENDING可以确保测试方法的执行顺序,但是测试方法之间的依赖关系并不是一个好的实践。最好的做法是让每个测试方法都可以独立地运行,并且每个测试方法都应该在执行前清除其它测试方法的影响。
### 回答2:
在JUnit测试框架中,可以使用`MethodSorters`类下的`NAME_ASCENDING`顺序类型来指定测试方法的执行顺序。使用该类型可以确保测试方法按字母顺序执行,即方法名以字母序列升序排列。
指定测试方法执行顺序的主要原因是为了控制测试的依赖关系。在某些情况下,测试方法之间可能存在依赖关系,即某些测试方法需要在其他测试方法执行之后才能执行。如果依赖关系没有得到明确的控制,测试方法的执行顺序可能是不确定的,这样会导致测试结果的不稳定性。
通过使用`MethodSorters.NAME_ASCENDING`顺序类型,测试框架会根据测试方法名的字母顺序来决定执行顺序。例如,如果有三个测试方法分别命名为`testA`、`testB`和`testC`,那么执行顺序将依次是`testA`、`testB`和`testC`。
这种顺序类型的使用,可以使得测试方法按照一定的规则有序地执行,从而确保测试的可重复性和稳定性。此外,这种顺序类型还可以使得在测试执行过程中能够清晰地看到哪些方法已经执行完毕,便于评估测试进度和结果。
需要注意的是,使用`MethodSorters.NAME_ASCENDING`顺序类型并不意味着该顺序类型就是默认的或者最佳的选择。在实际应用中,根据具体的测试需求和优先级,选择合适的顺序类型是非常重要的。有时候可能需要自定义测试方法的执行顺序,以满足特定的测试需求。
### 回答3:
在JUnit测试中,默认情况下测试方法的执行顺序是不确定的,这是因为JUnit认为每个测试方法应该是独立且无关的。然而,有时候我们可能希望按照特定的顺序执行测试方法,比如按照方法名的字母顺序。这时候就可以使用MethodSorters.NAME_ASCENDING顺序类型来指定测试方法的执行顺序。
MethodSorters.NAME_ASCENDING是JUnit中提供的一个排序策略,它会按照测试方法的名称进行排序,即按照字母顺序从小到大的顺序执行测试方法。这种排序方式可以确保测试方法按照一定的顺序被执行,从而提高测试的可控性和可维护性。
使用MethodSorters.NAME_ASCENDING可以带来一些好处。首先,它可以确保测试方法的执行顺序在不同的测试运行中保持一致,这对于需要多次运行测试的场景非常重要。其次,按照方法名排序可以使得测试报告更加直观易读,便于查看测试结果和定位问题。此外,通过显式地指定测试方法的执行顺序,可以使得测试用例之间的依赖关系更加清晰,从而更好地组织测试。
需要注意的是,JUnit并不建议频繁地依赖测试方法的执行顺序,因为测试方法应该是独立测试的。只有在确实有必要并且能够确保测试方法之间不会相互影响的情况下,才应该使用MethodSorters.NAME_ASCENDING来指定测试方法的执行顺序。