code: public void close(ResultSet rs, Statement st, Connection conn) {
  		if (rs != null) {try {rs.close();} catch (SQLException e) {LogKit.error(e.getMessage(), e);}}
  		if (st != null) {try {st.close();} catch (SQLException e) {LogKit.error(e.getMessage(), e);}}
  		
  		if (threadLocal.get() == null) {	// in transaction if conn in threadlocal
  			if (conn != null) {try {conn.close();}
  			catch (SQLException e) {throw new ActiveRecordException(e);}}
  		}
  	}
docs: Close ResultSet、Statement、Connection
  ThreadLocal support declare transaction.