首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中从Dao类保存数组

在Java中从Dao类保存数组
EN

Stack Overflow用户
提问于 2018-06-14 00:40:48
回答 2查看 422关注 0票数 1

如何访问从EmployeeEmployeeDaoename字符串数组。我想用一个像st.setString(1,ename[l])这样的for循环来保存这个值。如果我在bean类中编写EmployeeSave()方法,则没有问题,但我想用EmployeeDao编写它

代码语言:javascript
复制
st.setString(1, E.getEname()) 

给我一个错误,因为类型PreparedStatement中的方法setString(int, String)不适用于参数(int,String[])。

Employee.class

com包;

代码语言:javascript
复制
public class Employee {

    public String[] getEname() {
        return ename;
    }

    public void setEname(String[] ename) {
        this.ename = ename;
    }

    private String ename[];

}

EmployeeDao.class

代码语言:javascript
复制
package com;
import java.sql.*;
public class EmployeeDao {

    public static void SaveEmployee(Employee E) {
        Connection con = null;
        String sql = "";

        try 
        {
            PreparedStatement st = con.prepareStatement(sql);
            for (int l = 0; l < E.getEname().length; l++) 
            {
                st.setString(1, E.getEname());

            }
        }

    catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}


}
EN

回答 2

Stack Overflow用户

发布于 2018-06-14 00:52:47

我认为问题来自于您定义Employee.ename字符串数组的方式。只需使用private String ename;即可

票数 0
EN

Stack Overflow用户

发布于 2018-06-14 02:24:08

String[] ename是字符串数组,而不是单个字符串。您可以通过两种方式将其保存到数据库中:

1)一个单独的名称表

正确的方法是创建一个包含列的单独ename表:

代码语言:javascript
复制
employeeId
ename

在(employeeId,ename)上创建复合主键。

然后将每个ename保存为ename表中的单独行。然后从数据库中读取Employee,您需要通过employeeId从ename表中读取所有ename。

例如,假设我们的Employee具有id=1和ename="name1","name2“。我们将在数据库的ename表中包含以下数据:

代码语言:javascript
复制
employeeId | ename
------------------
          1| name1
          1| name2

2)将String[]序列化为字符串

您可以将ename数组序列化为单个字符串(作为JSON、XML、逗号分隔值),并将单个字符串值存储在数据库中。

从数据库读取数据时,需要将String反序列化为String[]。

例如,假设我们的Employee具有id=1和ename="name1","name2“。如果数据被序列化为JSON,我们将在数据库的Employee表中包含以下数据:

代码语言:javascript
复制
    employeeId | ename
---------------------------------------
             1 | ["name1","name2"]  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50842299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档