Struct mysql::PooledConn
source · pub struct PooledConn { /* private fields */ }
Expand description
Pooled mysql connection which will return to the pool on drop
.
You should prefer using prep
along exec
instead of query
from the Queryable trait where
possible, except cases when statement has no params and when it has no return values or return
values which evaluates to Value::Bytes
.
query
is a part of mysql text protocol, so under the hood you will always receive
Value::Bytes
as a result and from_value
will need to parse it if you want, for example, i64
let pool = Pool::new(get_opts()).unwrap();
let mut conn = pool.get_conn().unwrap();
conn.query_first("SELECT 42").map(|result: Option<Value>| {
let result = result.unwrap();
assert_eq!(result, Value::Bytes(b"42".to_vec()));
assert_eq!(from_value::<i64>(result), 42i64);
}).unwrap();
conn.exec_iter("SELECT 42", ()).map(|mut result| {
let cell = result.next().unwrap().unwrap().take(0).unwrap();
assert_eq!(cell, Value::Int(42i64));
assert_eq!(from_value::<i64>(cell), 42i64);
}).unwrap();
For more info on how to work with query results please look at
QueryResult
documentation.
Implementations
sourceimpl PooledConn
impl PooledConn
sourcepub fn start_transaction(&mut self, tx_opts: TxOpts) -> Result<Transaction<'_>>
pub fn start_transaction(&mut self, tx_opts: TxOpts) -> Result<Transaction<'_>>
Redirects to
Conn#start_transaction
sourcepub fn get_binlog_stream(
self,
request: BinlogRequest<'_>
) -> Result<BinlogStream>
pub fn get_binlog_stream(
self,
request: BinlogRequest<'_>
) -> Result<BinlogStream>
Turns this connection into a binlog stream (see Conn::get_binlog_stream
).
sourcepub fn set_local_infile_handler(&mut self, handler: Option<LocalInfileHandler>)
pub fn set_local_infile_handler(&mut self, handler: Option<LocalInfileHandler>)
A way to override default local infile handler for this pooled connection. Destructor will
restore original handler before returning connection to a pool.
See Conn::set_local_infile_handler
.
Methods from Deref<Target = Conn>
sourcepub fn server_version(&self) -> (u16, u16, u16)
pub fn server_version(&self) -> (u16, u16, u16)
Returns version number reported by the server.
sourcepub fn connection_id(&self) -> u32
pub fn connection_id(&self) -> u32
Returns connection identifier.
sourcepub fn affected_rows(&self) -> u64
pub fn affected_rows(&self) -> u64
Returns number of rows affected by the last query.
sourcepub fn last_insert_id(&self) -> u64
pub fn last_insert_id(&self) -> u64
Returns last insert id of the last query.
Returns zero if there was no last insert id.
sourcepub fn info_str(&self) -> Cow<'_, str>
pub fn info_str(&self) -> Cow<'_, str>
Info, reported by the server.
Will be empty if not defined.
pub fn session_state_changes(&self) -> Result<Vec<SessionStateInfo<'_>>>
pub fn no_backslash_escape(&self) -> bool
Trait Implementations
sourceimpl Debug for PooledConn
impl Debug for PooledConn
sourceimpl Deref for PooledConn
impl Deref for PooledConn
sourceimpl Drop for PooledConn
impl Drop for PooledConn
sourceimpl Queryable for PooledConn
impl Queryable for PooledConn
sourcefn query_iter<T: AsRef<str>>(
&mut self,
query: T
) -> Result<QueryResult<'_, '_, '_, Text>>
fn query_iter<T: AsRef<str>>(
&mut self,
query: T
) -> Result<QueryResult<'_, '_, '_, Text>>
sourcefn prep<T: AsRef<str>>(&mut self, query: T) -> Result<Statement>
fn prep<T: AsRef<str>>(&mut self, query: T) -> Result<Statement>
query
as a prepared statement.sourcefn close(&mut self, stmt: Statement) -> Result<()>
fn close(&mut self, stmt: Statement) -> Result<()>
sourcefn exec_iter<S, P>(
&mut self,
stmt: S,
params: P
) -> Result<QueryResult<'_, '_, '_, Binary>>where
S: AsStatement,
P: Into<Params>,
fn exec_iter<S, P>(
&mut self,
stmt: S,
params: P
) -> Result<QueryResult<'_, '_, '_, Binary>>where
S: AsStatement,
P: Into<Params>,
stmt
with the given params
.sourcefn query<T, Q>(&mut self, query: Q) -> Result<Vec<T>>where
Q: AsRef<str>,
T: FromRow,
fn query<T, Q>(&mut self, query: Q) -> Result<Vec<T>>where
Q: AsRef<str>,
T: FromRow,
sourcefn query_opt<T, Q>(
&mut self,
query: Q
) -> Result<Vec<StdResult<T, FromRowError>>>where
Q: AsRef<str>,
T: FromRow,
fn query_opt<T, Q>(
&mut self,
query: Q
) -> Result<Vec<StdResult<T, FromRowError>>>where
Q: AsRef<str>,
T: FromRow,
Queryable::query
but useful when you not sure what your schema is.sourcefn query_first<T, Q>(&mut self, query: Q) -> Result<Option<T>>where
Q: AsRef<str>,
T: FromRow,
fn query_first<T, Q>(&mut self, query: Q) -> Result<Option<T>>where
Q: AsRef<str>,
T: FromRow,
sourcefn query_first_opt<T, Q>(
&mut self,
query: Q
) -> Result<Option<StdResult<T, FromRowError>>>where
Q: AsRef<str>,
T: FromRow,
fn query_first_opt<T, Q>(
&mut self,
query: Q
) -> Result<Option<StdResult<T, FromRowError>>>where
Q: AsRef<str>,
T: FromRow,
Queryable::query_first
but useful when you not sure what your schema is.sourcefn query_map<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(T) -> U,
fn query_map<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(T) -> U,
sourcefn query_map_opt<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(StdResult<T, FromRowError>) -> U,
fn query_map_opt<T, F, Q, U>(&mut self, query: Q, f: F) -> Result<Vec<U>>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(StdResult<T, FromRowError>) -> U,
Queryable::query_map
but useful when you not sure what your schema is.sourcefn query_fold<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(U, T) -> U,
fn query_fold<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(U, T) -> U,
sourcefn query_fold_opt<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(U, StdResult<T, FromRowError>) -> U,
fn query_fold_opt<T, F, Q, U>(&mut self, query: Q, init: U, f: F) -> Result<U>where
Q: AsRef<str>,
T: FromRow,
F: FnMut(U, StdResult<T, FromRowError>) -> U,
Queryable::query_fold
but useful when you not sure what your schema is.sourcefn query_drop<Q>(&mut self, query: Q) -> Result<()>where
Q: AsRef<str>,
fn query_drop<Q>(&mut self, query: Q) -> Result<()>where
Q: AsRef<str>,
sourcefn exec_batch<S, P, I>(&mut self, stmt: S, params: I) -> Result<()>where
Self: Sized,
S: AsStatement,
P: Into<Params>,
I: IntoIterator<Item = P>,
fn exec_batch<S, P, I>(&mut self, stmt: S, params: I) -> Result<()>where
Self: Sized,
S: AsStatement,
P: Into<Params>,
I: IntoIterator<Item = P>,
sourcefn exec<T, S, P>(&mut self, stmt: S, params: P) -> Result<Vec<T>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
fn exec<T, S, P>(&mut self, stmt: S, params: P) -> Result<Vec<T>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
stmt
and collects the first result set.sourcefn exec_opt<T, S, P>(
&mut self,
stmt: S,
params: P
) -> Result<Vec<StdResult<T, FromRowError>>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
fn exec_opt<T, S, P>(
&mut self,
stmt: S,
params: P
) -> Result<Vec<StdResult<T, FromRowError>>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
Queryable::exec
but useful when you not sure what your schema is.sourcefn exec_first<T, S, P>(&mut self, stmt: S, params: P) -> Result<Option<T>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
fn exec_first<T, S, P>(&mut self, stmt: S, params: P) -> Result<Option<T>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
stmt
and returns the first row of the first result set.sourcefn exec_first_opt<T, S, P>(
&mut self,
stmt: S,
params: P
) -> Result<Option<StdResult<T, FromRowError>>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
fn exec_first_opt<T, S, P>(
&mut self,
stmt: S,
params: P
) -> Result<Option<StdResult<T, FromRowError>>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
Queryable::exec_first
but useful when you not sure what your schema is.sourcefn exec_map<T, S, P, F, U>(&mut self, stmt: S, params: P, f: F) -> Result<Vec<U>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(T) -> U,
fn exec_map<T, S, P, F, U>(&mut self, stmt: S, params: P, f: F) -> Result<Vec<U>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(T) -> U,
stmt
and maps each row of the first result set.sourcefn exec_map_opt<T, S, P, F, U>(
&mut self,
stmt: S,
params: P,
f: F
) -> Result<Vec<U>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(StdResult<T, FromRowError>) -> U,
fn exec_map_opt<T, S, P, F, U>(
&mut self,
stmt: S,
params: P,
f: F
) -> Result<Vec<U>>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(StdResult<T, FromRowError>) -> U,
Queryable::exec_map
but useful when you not sure what your schema is.sourcefn exec_fold<T, S, P, U, F>(
&mut self,
stmt: S,
params: P,
init: U,
f: F
) -> Result<U>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(U, T) -> U,
fn exec_fold<T, S, P, U, F>(
&mut self,
stmt: S,
params: P,
init: U,
f: F
) -> Result<U>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(U, T) -> U,
stmt
and folds the first result set to a signel value.sourcefn exec_fold_opt<T, S, P, U, F>(
&mut self,
stmt: S,
params: P,
init: U,
f: F
) -> Result<U>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(U, StdResult<T, FromRowError>) -> U,
fn exec_fold_opt<T, S, P, U, F>(
&mut self,
stmt: S,
params: P,
init: U,
f: F
) -> Result<U>where
S: AsStatement,
P: Into<Params>,
T: FromRow,
F: FnMut(U, StdResult<T, FromRowError>) -> U,
Queryable::exec_fold
but useful when you not sure what your schema is.Auto Trait Implementations
impl RefUnwindSafe for PooledConn
impl Send for PooledConn
impl Sync for PooledConn
impl Unpin for PooledConn
impl UnwindSafe for PooledConn
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
impl<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
impl<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
fn lift_into(self) -> U
fn lift_into(self) -> U
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read morefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
self
, then passes self.deref()
into the pipe function.impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more