public void setTable(Table table) { this.table = table; insertSql = DBUtil.insertSql(table.getName(), table.getColumnNames()); selector = new TableSelectorImpl(); selector.setTable(table); }
public void save(Connection conn, Object o) throws EntityExistException, DBLevelException { PreparedStatement pstmt = null; try { pstmt = conn.prepareStatement(insertSql); Column[] columns = table.getColumns(); for (int i = 0; i < columns.length; i++) { Column column = columns[i]; ColumnAdapter columnAdapter = column.getAdapter(); columnAdapter.setPreparedStatement(pstmt, i + 1, o); } pstmt.executeUpdate(); } catch (SQLException e) { logger.error("", e); if (conn != null) { // violate pk or unique constraints? if (!Util.isEmpty(table.getIdColumns())) { boolean isExist = selector.isExistByIdColumns(conn, o); if (isExist) { throw new EntityExistException(o); } } if (!Util.isEmpty(table.getUniqueColumns())) { boolean isExist = selector.isExistByUniqueColumns(conn, o); if (isExist) { throw new EntityExistException(o); } } throw new DBLevelException(e); } else { throw new DBLevelException(e); } } finally { DBUtil.close(pstmt); } }