我正在實現一個接口setObject
,它將接受String,int,double等數據類型,我將在我的Insert語句中使用它。但是當在我的數據庫中插入數據時,它給了我一個值[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持久性API或Spring Data。 –