hutool-db 使用
所属分类 hutool
浏览量 179
Db.use().insert(
Entity.create("user")
.set("name", "unitTestUser")
.set("age", 66)
);
插入数据并返回自增主键:
Db.use().insertForGeneratedKey(
Entity.create("user")
.set("name", "unitTestUser")
.set("age", 66)
);
Db.use().del(
Entity.create("user").set("name", "unitTestUser")//where条件
);
del方法不允许使用空的where条件,防止全表删除,如有相关操作需要,使用 execute方法执行SQL
Db.use().update(
Entity.create().set("age", 88), //修改的数据
Entity.create("user").set("name", "unitTestUser") //where条件
);
条件语句除了可以用=精确匹配外,也可以范围条件匹配,例如 age < 12
Entity:Entity.create("user").set("age", "< 12"),
通过Entity方式传入条件暂时不支持同字段多条件
查询全部字段
//user为表名
Db.use().findAll("user");
条件查询
Db.use().findAll(Entity.create("user").set("name", "unitTestUser"));
模糊查询
Db.use().findLike("user", "name", "Test", LikeType.Contains);
或者
List< Entity> find = Db.use().find(Entity.create("user").set("name", "like 王%"));
分页查询
//Page对象 页码和每页条目数
PageResult< Entity> result = Db.use().page(Entity.create("user").set("age", "> 30"), new Page(10, 20));
执行SQL语句
//查询
List< Entity> result = Db.use().query("select * from user where age < ?", 3);
//模糊查询
List< Entity> result = Db.use().query("select * from user where name like ?", "王%");
//新增
Db.use().execute("insert into user values (?, ?, ?)", "张三", 17, 1);
//删除
Db.use().execute("delete from user where name = ?", "张三");
//更新
Db.use().execute("update user set age = ? where name = ?", 3, "张三");
事务
Db.use().tx(new TxFunc() {
@Override
public void call(Db db) throws SQLException {
db.insert(Entity.create("user").set("name", "unitTestUser"));
db.update(Entity.create().set("age", 79), Entity.create("user").set("name", "unitTestUser"));
}
});
JDK8 lambda表达式(since:5.x)
Db.use().tx(db -> {
db.insert(Entity.create("user").set("name", "unitTestUser2"));
db.update(Entity.create().set("age", 79), Entity.create("user").set("name", "unitTestUser2"));
});
命名占位符SQL
支持以下几种形式
:name
?name
@name
Map< String, Object> paramMap = MapUtil.builder("name1", (Object)"张三").put("age", 12).put("subName", "小豆豆").build();
Db.use().query("select * from table where id=@id and name = @name1 and nickName = @subName", paramMap);
IN查询
List< Entity> results = db.findAll(
Entity.create("user")
.set("id", "in 1,2,3"));
List< Entity> results = db.findAll(
Entity.create("user")
.set("id", new long[]{1, 2, 3}));
上一篇
下一篇
hutool 常用方法
hutool使用常见问题
hutool-db hsqldb2 例子
grafana alert Group wait Group interval Repeat interval
MyBatis VS MyBatisPlus
dolphinscheduler 3.2.1