DasClient { public <T> int insert(T entity, Hints...hints) throws SQLException { final Hints hint = checkHints(hints); return internalExecute(hint, ()->{return delegate.insert(entity, hint);}); } DasClient(DasDelegate delegate); T queryByPk(T pk, Hints...hints); List<T> queryBySample(T sample, Hints...hints); List<T> queryBySample(T sample, PageRange range, Hints...hints); long countBySample(T sample, Hints...hints); int insert(T entity, Hints...hints); int insert(List<T> entities, Hints...hints); int[] batchInsert(List<T> entities, Hints...hints); int deleteByPk(T pk, Hints...hints); int deleteBySample(T sample, Hints...hints); int[] batchDelete(List<T> entities, Hints...hints); int update(T entity, Hints...hints); int[] batchUpdate(List<T> entities, Hints...hints); T queryObject(SqlBuilder builder); T queryObjectNullable(SqlBuilder builder); List<T> query(SqlBuilder builder); List<?> batchQuery(BatchQueryBuilder builder); int update(SqlBuilder builder); int[] batchUpdate(BatchUpdateBuilder builder); void call(CallBuilder builder); int[] batchCall(BatchCallBuilder builder); void execute(Transaction transaction, Hints...hints); T execute(CallableTransaction<T> transaction, Hints...hints);  }
@Test public void testInsertEmptyList() throws Exception { assertEquals(0, dao.insert(Collections.emptyList())); }
@Test public void testExceptionType() { Person p = new Person(); p.setPeopleID(1); List<Person> pl = new ArrayList<>(); pl.add(p); pl.add(p); try { dao.insert(pl, hints().insertWithId()); fail(); }catch (Exception e) { assertTrue(e instanceof SQLException); } }