001/* 002 * JKNIV, whinstone one contract to access your database. 003 * 004 * Copyright (C) 2017, the original author or authors. 005 * 006 * This library is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 2.1 of the License. 010 * 011 * This library is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with this library; if not, write to the Free Software Foundation, Inc., 018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 019 */ 020package net.sf.jkniv.whinstone.params; 021 022import net.sf.jkniv.whinstone.Queryable; 023import net.sf.jkniv.whinstone.statement.StatementAdapter; 024 025/** 026 * Realize the bind from parameter to {@link StatementAdapter} automatically. 027 * 028 * @author Alisson Gomes 029 * @since 0.6.0 030 * 031 */ 032public interface AutoBindParams 033{ 034 /** 035 * Bind all parameters from {@link Queryable} to {@link StatementAdapter} automatically 036 * @throws ParameterException when a parameter values not correspond the type expected 037 */ 038 public void on(); 039 040 /** 041 * Grouping multiple {@code insert} |{@code update} | {@code delete} statements 042 * into a single Prepared Statement. 043 * 044 * @return the number of rows affected. 045 * <p><b>Note:</b> 046 * <p><code>-2</code> no count of the number of rows it affected is available</p> 047 * <p><code>-3</code> indicating that an error occurred while executing a bulk statement</p> 048 * @throws ParameterException when a parameter values not correspond the type expected 049 */ 050 public int onBulk(); 051 052 /* 053 * Grouping multiple {@code insert} |{@code update} | {@code delete} statements 054 * into a single batch and having the whole batch sent to the database and 055 * processed in one trip 056 * @return the number of rows affected. 057 * <p><b>Note:</b> 058 * <p><code>-2</code> no count of the number of rows it affected is available</p> 059 * <p><code>-3</code> indicating that an error occurred while executing a batch statement</p> 060 */ 061}