引入依赖
截止到目前为止 HasorDB 的最新版本为:4.3.2
<dependency>
<groupId>net.hasor</groupId>
<artifactId>hasor-db</artifactId>
<version>4.3.2</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();
LambdaTemplate lambdaTemplate = new LambdaTemplate(dataSource);
// 新增Map<String, Object> newValue = new HashMap<>();
newValue.put("id", 20);
newValue.put("name", "new name");
newValue.put("age", 88);
newValue.put("create_time", new Date());
InsertOperation<Map<String, Object>> insert = lambdaTemplate.lambdaInsert("test_user");
int result = insert.applyMap(newValue).executeSumResult()
// 更新Map<String, Object> updateValue = new HashMap<>();
updateValue.put("name", "new name");
updateValue.put("age", 88);
MapUpdateOperation update = lambdaTemplate.lambdaUpdate("test_user");
int result = update.eq("id", 1).updateByMap(updateValue).doUpdate();
// 查询
List<Map<String, Object>> mapList = jdbcTemplate.queryForList("select * from test_user");
// 打印测试数据
PrintUtils.printMapList(mapList)