@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 18:33:44 浏览: 139
根据你提供的代码,如果获取的是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行。
X_train = pd.read_csv("C:/Users/hp/Desktop/X_trainA.csv") y_train = pd.read_csv("C:/Users/hp/Desktop/y_trainA.csv") y_train = y_train.values.ravel() X_test = pd.read_csv("C:/Users/hp/Desktop/X_testA.csv") y_test = pd.read_csv("C:/Users/hp/Desktop/y_testA.csv") y_test = y_test.values.ravel() rf = RandomForestClassifier(max_depth=None, min_samples_leaf=4, min_samples_split=10, n_estimators=10, random_state=42) rf.fit(X_train, y_train) # 计算Shap值 explainer = shap.KernelExplainer(rf) shap_values = explainer.shap_values(X_train) # 可视化特征重要性 shap.summary_plot(shap_values, X_train, plot_type="bar") print(X_train, y_train) print(shap_values) import numpy as np shap_values = np.array(shap_values) shap_values= shap_values.reshape((2*105, 16)) df = pd.DataFrame(shap_values) df.to_excel('shap3.xlsx', index=False)有什么问题
这段代码的功能是使用随机森林模型对数据进行训练,并通过shap库计算每个特征对模型预测的影响,最后将结果保存到Excel文件中。但是代码中存在一些潜在问题:
1. 在计算Shap值时,需要指定训练集作为参数,但是代码中使用的是测试集:
```python
shap_values = explainer.shap_values(X_train)
```
应该改为:
```python
shap_values = explainer.shap_values(X_test)
```
2. 在将shap_values写入Excel文件之前,需要将其转换为numpy数组,但是在代码中已经将其转换为列表了,所以需要将以下代码:
```python
import numpy as np
shap_values = np.array(shap_values)
```
改为:
```python
shap_values = np.asarray(shap_values)
```
3. 在将shap_values写入Excel文件之前,需要将其reshape成正确的形状,但是代码中reshape的形状不正确:
```python
shap_values= shap_values.reshape((2*105, 16))
```
应该改为:
```python
shap_values= shap_values.reshape((len(X_test), X_test.shape[1]))
```
4. 代码中没有对导入的库进行说明,应该添加注释或说明文档,以便其他人阅读和理解代码。
阅读全文