Ich implementiere eine Schnittstelle setObject
, die String, int, double usw. Datentyp akzeptiert, wo ich das in meiner Insert-Anweisung verwenden werde. Aber wenn ich Daten in meine Datenbank einfüge gibt es Werte [a,b,c] [a,b,c] [a,b,c]
. Wie kann ich diese Ausgabe vermeiden?Splitting-Objekt
Schnittstelle:
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);
}
Entschuldigen Sie, dass Ihr Code durch Design auf verschiedene Arten beschädigt ist. Bitte beachten Sie die Java Persistence API oder Spring Data. –