私はInsert文でこれを使用するString、int、doubleなどのデータ型を受け入れるインターフェイスsetObject
を実装しています。しかし、私のデータベースにデータを挿入するとき、それは私に値[a,b,c] [a,b,c] [a,b,c]
を与えます。どうすればこの出力を避けることができますか?分割オブジェクト
インタフェース:
public interface CallableStatement
{
ArrayList<Object> myList = new ArrayList<>();
public void setObject(ArrayList<Object> myList);
}
public class Position implements CallableStatement
{
String departmentName;
String departmentType;
String departmentDescription;
public Position()
{
array();
}
public void array()
{
ArrayList<Object> myList = new ArrayList<Object>();
myList.add(departmentName);
myList.add(departmentType);
myList.add(departmentDescription);
}
@Override
public void setObject(ArrayList<Object> myList)
{
String query = "{call insertPositions(?,?,?)}";
try(Connection con = DBUtil.getConnection(DBType.MYSQL);
java.sql.CallableStatement cs = con.prepareCall(query);)
//Prepare the stored procedure call
{
//Setting the parameters
cs.setObject(1, myList.toString());
cs.setObject(2, myList.toString());
cs.setObject(3, myList.toString());
cs.executeUpdate();
}
catch(SQLException e)
{
System.err.println("Error: "+e.getMessage());
System.err.println("Error: "+e.getErrorCode());
System.err.println("Error: "+e.getSQLState());
}
}
}
はGUI:
private void addDepartmentBtnActionPerformed(java.awt.event.ActionEvent evt) {
String departmentName = tfDepartmentName.getText();
String departmentType = tfDepartmentType.getText();
String departmentDescription = tfDescription.getText();
ArrayList<Object> addPositionsList = new ArrayList<Object>();
addPositionsList.add(departmentName);
addPositionsList.add(departmentType);
addPositionsList.add(departmentDescription);
CallableStatement cs = new Position();
cs.setObject(addPositionsList);
}
ご迷惑をおかけして申し訳ありませんが、あなたのコードはいくつかの点でデザインによって壊れています。 Java Persistence APIまたはSpring Dataの使用を検討してください。 –