我正在实现一个接口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。 –