首页  

hutool-db 使用     所属分类 hutool 浏览量 127
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