Java⼯具库Hutool-db数据库简单操作
⼀、⼯具简介
Hutool 是⼀个⼩⽽全的 Java ⼯具类库,通过静态⽅法封装,降低相关 API 的学习成本,提⾼⼯作效率,使 Java 拥有函数式语⾔般的优雅,让 Java语⾔也可以“甜甜的”。Hutool 对⽂件、流、加密解密、转码、正则、线程、XML、⽇期、Http客户端等 JDK ⽅法进⾏封装,组成各种 Util ⼯具类。
Hutool 涵盖了Java开发底层代码中的⽅⽅⾯⾯,它既是⼤型项⽬开发中解决⼩问题的利器,也是⼩型项⽬中的效率担当;
Hutool 是项⽬中“util”包友好的替代,它节省了开发⼈员对项⽬中公⽤类和公⽤⼯具⽅法的封装时间,使开发专注于业务,同时可以最⼤限度的避免封装不完善带来的 bug。
Hutool 的⽬标是使⽤⼀个⼯具⽅法代替⼀段复杂代码,从⽽最⼤限度的避免“复制粘贴”代码的问题,彻底改变写代码的⽅式。
⼆、Hutool-db
数据库操作不外乎四门功课:增删改查,在Java的世界中,由于JDBC的存在,这项⼯作变得简单易⽤,
但是也并没有做到使⽤上的简化。于是出现了JPA(Hibernate)、MyBatis、Jfinal等解决框架,或解决多数据库差异问题,或解决SQL维护问题。⽽Hutool对JDBC的封装,多数为在⼩型项⽬中对数据处理的简化,尤其只涉及单表操作时。OK,废话不多,来个Demo感受下。
1、添加配置⽂件
Maven项⽬中在src/main/resources⽬录下添加db.setting⽂件(⾮Maven项⽬添加到ClassPath中即可):
## db.setting⽂件
url = jdbc:mysql://localhost:3306/test
user = root
pass = 123456
## 可选配置
# 是否在⽇志中显⽰执⾏的SQL
jfinal增删改查
showSql = true
# 是否格式化显⽰的SQL
formatSql = false
# 是否显⽰SQL参数
showParams = true
2、引⼊驱动jar
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
3、增删查改
Db.use().insert(
.set("name", "unitTestUser")
.set("age", 66)
)
;
插⼊数据并返回⾃增主键:
Db.use().insertForGeneratedKey(
.set("name", "unitTestUser")
.set("age", 66)
);
Db.use().del(
);
Db.use().update(
);
注意条件语句除了可以⽤=精确匹配外,也可以范围条件匹配,例如表⽰age < 12可以这样构造Entity:ate("user").set("age", "< 12"),但是通过Entity⽅式传⼊条件暂时不⽀持同字段多条件的情况。
查询全部字段
//user为表名
Db.use().findAll("user");
条件查询
Db.use().ate("user").set("name", "unitTestUser"));
模糊查询
Db.use().findLike("user", "name", "Test", LikeType.Contains);
分页查询
//Page对象通过传⼊页码和每页条⽬数达到分页⽬的
PageResult<Entity> result = Db.use().ate("user").set("age", "> 30"), new Page(10, 20));
执⾏SQL语句
//查询
List<Entity> = Db.use().query("select * from user where age < ?", 3);
//更新
Db.use().execute("update user set age = ? where name = ?", 3, "张三");
事务
Db.use().tx(new TxFunc() {
@Override
public void call(Db db) throws SQLException {
db.ate("user").set("name", "unitTestUser"));
db.ate().set("age", 79), ate("user").set("name", "unitTestUser"));
}
});

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。