基于
rbdc的rust虚谷数据库驱动。支持虚谷数据库
v11/v12。
# Cargo.toml
rbdc-pool-fast = "4.8"
rbdc-xugu = "4.8"
tokio = { version = "1", features = ["full"] }lowercase_column_name: 将MetaData返回的列名转为小写,默认启用。 虚谷数据库查询结果集返回的列名和别名通常为大写,但大多数情况下rbatis的crud!注解的 struct 的字段 编程习惯上都为小写下划线命名的。serde进行反序列化时,需要通过#[serde(alias = "ID")]注解字段别名,来对应数据库返回的大写列名ID。 启用这个 feature 后,可免去这种大量的serde别名注解。
use rbdc_pool_fast::FastPool;
use rbdc_xugu::db::Connection;
use rbdc_xugu::pool::Pool;
use rbdc_xugu::XuguDriver;
#[tokio::main]
async fn main() -> Result<(), rbdc_xugu::Error> {
let pool = FastPool::new_url(
XuguDriver,
"xugu://GUEST:GUEST@127.0.0.1:5138/SYSTEM?ssl=ssl",
)?;
let mut conn = pool.get().await?;
let v = conn.exec_decode("SELECT * FROM your_tables", vec![]).await?;
println!("{:?}", v);
//if need decode use `let result:Vec<Table> = rbs::from_value(v)?;`
Ok(())
}rbdc-xugu 驱动url格式,支持以下几种
1. xugu://ip:port/databaseName[?property=value[&property=value]]
* 例:xugu://127.0.0.1:5138/SYSTEM?user=GUEST&password=GUEST&version=301&time_zone=GMT
2. xugu://user:passwd@ip:port/databaseName[?property=value[&property=value]]
* 例:xugu://GUEST:GUEST@127.0.0.1:5138/SYSTEM?version=301&time_zone=GMT
| 参数名 | 说明 | 初始值 |
|---|---|---|
| database | 数据库名 | |
| user | 用户名 | |
| password | 用户密码 | |
| version | 服务器版本 | 301 |
| encryptor | 数据库解密密钥 | |
| charset | 客户端字符集(utf8或gbk) | utf8 |
| lob_ret | 大对象返回方式 | |
| time_zone | 客户端时区 | |
| iso_level | 事务隔离级别 | READ COMMITTED读已提交 |
| lock_timeout | 最大加锁等候时间 | |
| auto_commit | 是否自动提交 | on |
| return_rowid | 是否返回rowid | false |
| return_schema | 查询SQL是否返回模式信息(此参数存在一个疑问) | on |
| identity_mode | 数据库服务端自增长使用模式(DEFAULT:default自增,NULL_AS_AUTO_INCREMENT:NULL自增,ZERO_AS_AUTO_INCREMENT:0和NULL自增) | |
| keyword_filter | 数据库连接配置连接上需要开放的关键字串,已逗号分隔,例如TABLE,FUNCTION,CONSTANT | |
| disable_binlog | 不记载binlog日志 | |
| current_schema | 指定连接的模式名 | |
| compatible_mode | 适配其他数据库(MySQL/ORACLE/PostgreSQL) | NONE |
| use_ssl | 是否开启传输数据加密保护 on: 启用加密,off: 禁用加密 |
off |
| ssl | 同上 ssl=ssl: 启用加密,ssl=nssl: 禁用加密 |
nssl |
| statement-cache-capacity | 单个连接会话上的最大prepared语句数(max_prepare_num) 取值范围 [100, 2097152],不要超过数据库设置的值 show max_prepare_num; |
100 |
rbatis-v4: https://rbatis.github.io/rbatis.io/#/zh-cn/v4/docs.rs: https://docs.rs/rbatis/latest/rbatis/Github: https://github.com/rbatis/rbatiscrates.io: https://crates.io/crates/rbatis
- Bug 反馈: GitHub Issues
- 一般讨论: GitHub Discussions
- 商务合作: BrightXu666@163.com
MIT or Apache 2.0
rbdc-xugu 跟 成都虚谷伟业科技有限公司 不构成任何知识产权归属关系。这个程序不含任何担保。
软件以“现状”提供,不提供任何明示或暗示的保证,包括但不限于可销性、特定用途适用性和非侵权等保证。 无论如何,作者或版权持有人对因软件或软件使用或其他交易产生的、涉及合同、侵权或其他诉讼的索赔、损害或其他责任均不承担责任。