如何访问从ename
到Employee
的{{1}}字符串数组。我想用EmployeeDao
之类的for循环保存值。如果我在bean类中编写st.setString(1,ename[l])
方法没有问题,但我想在EmployeeSave()
中编写
EmployeeDao
给我错误,因为PreparedStatement类型中的方法st.setString(1, E.getEname())
不适用于参数(int,String [])。
Employee.class
package com;
setString(int, String)
EmployeeDao.class
public class Employee {
public String[] getEname() {
return ename;
}
public void setEname(String[] ename) {
this.ename = ename;
}
private String ename[];
}
答案 0 :(得分:0)
我认为问题来自于您定义Employee.ename字符串数组的方式。
只需使用private String ename;
代替
答案 1 :(得分:0)
String [] ename是一个字符串数组,而不是一个字符串。您可以通过两种方式将其保存在数据库中:
1)一个单独的enames表
正确的方法是使用列创建单独的ename表:
employeeId
ename
在(employeeId,ename)上创建复合主键。
然后将每个ename保存为ename表中的单独行。然后从数据库中读取Employee,您需要通过employeeId读取ename表中的所有enames。
例如,假设我们的员工ID = 1且ename = [" name1"," name2"]。我们将在数据库的ename表中包含以下数据:
employeeId | ename
------------------
1| name1
1| name2
2)将String []序列化为String
您可以将ename数组序列化为单个字符串(作为JSON,XML,逗号分隔值),并在数据库中存储单个字符串值。
从数据库中读取数据时,需要从String反序列化为String []。
例如,假设我们的员工ID = 1且ename = [" name1"," name2"]。如果数据被序列化为JSON:
,我们将在数据库的Employee表中包含以下数据 employeeId | ename
---------------------------------------
1 | ["name1","name2"]