推荐一款绝对不能错过的 ORM 框架 dbVisitor,目前版本 4.3.0

dbVisitor是一款强大的ORM框架,兼容Spring和MyBatis,提供JdbcTemplate、Mapper文件、LambdaTemplate等使用方式,支持丰富的类型处理、动态SQL、存储过程和分页查询。它还具备声明式和模版事务管理,支持多数据源和多种数据库方言。通过引入依赖和配置,可以轻松实现数据库操作和事务控制。
摘要由CSDN通过智能技术生成

介绍

dbVisitor(原HasorDB) 是一个全功能数据库访问工具,提供对象映射、丰富的类型处理、动态SQL、存储过程、 内置分页方言20+、 支持嵌套事务、多数据源、条件构造器、INSERT 策略、多语句/多结果。并兼容 Spring 及 MyBatis 用法。 它不依赖任何其它框架,因此可以很方便的和任意一个框架整合在一起使用。

功能特性

  • 熟悉的方式

    • JdbcTemplate 接口方式(高度兼容 Spring JDBC)
    • Mapper 文件方式(高度兼容 MyBatis)
    • LambdaTemplate (高度接近 MyBatis Plus、jOOQ 和 BeetlSQL)
    • @Insert、@Update、@Delete、@Query、@Callable 注解(类似 JPA)
  • 事务支持

    • 支持 5 个事务隔离级别、7 个事务传播行为(与 Spring tx 相同)
    • 提供 TransactionTemplate、TransactionManager 接口方式声明式事务控制能力(用法与 Spring 相同)
  • 特色优势

    • 支持 分页查询 并且提供多种数据库方言(20+)
    • 支持 INSERT 策略(INTO、UPDATE、IGNORE)
    • 更加丰富的 TypeHandler(MyBatis 40+,HasorDB 60+)
    • Mapper XML 支持多语句、多结果
    • 提供独特的规则机制,让动态 SQL 更加简单
    • 支持 存储过程
    • 支持 JDBC 4.2 和 Java8 中时间类型
    • 支持多数据源

引入依赖

截止到目前为止 dbVisitor 的最新版本为:4.3.0

<dependency>
    <groupId>net.hasor</groupId>
    <artifactId>hasor-db</artifactId>
    <version>4.3.0</version>
</dependency>

然后再引入数据库驱动以 MySQL,Maven 方式为例:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
</dependency>

使用 HasorDB 可以不依赖数据库连接池,但有数据库连接池是大多数项目的标配。这里选用 Alibaba 的 Druid

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.23</version>
</dependency>

最后准备一个数据库表,并初始化一些数据(CreateDB.sql 文件)

drop table if exists `test_user`;
    create table `test_user` (
    `id`          int(11) auto_increment,
    `name`        varchar(255),
    `age`         int,
    `create_time` datetime,
    primary key (`id`)
);

insert into `test_user` values (1, 'mali', 26, now());
insert into `test_user` values (2, 'dative', 32, now());
insert into `test_user` values (3, 'jon wes', 41, now());
insert into `test_user` values (4, 'mary', 66, now());
insert into `test_user` values (5, 'matt', 25, now());

执行 SQL

使用 SQL 的方式读取数据,PrintUtils 和 DsUtils 两个工具类可以在例子工程中找到

// 创建数据源
DataSource dataSource = DsUtils.dsMySql();
// 创建 JdbcTemplate 对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 加载测试数据脚本
jdbcTemplate.loadSQL("CreateDB.sql");

// 查询数据并 Map 形式返回
List<Map<String, Object>> mapList = jdbcTemplate.queryForList("select * from test_user");
// 打印测试数据
PrintUtils.printMapList(mapList);

控制台可以得到如下结果

/--------------------------------------------\
| id | name    | age | create_time           |
|--------------------------------------------|
| 1  | mali    | 26  | 2021-11-12 19:14:06.0 |
| 2  | dative  | 32  | 2021-11-12 19:14:06.0 |
| 3  | jon wes | 41  | 2021-11-12 19:14:06.0 |
| 4  | mary    | 66  | 2021-11-12 19:14:06.0 |
| 5  | matt    | 25  | 2021-11-12 19:14:06.0 |
\-------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值