这里就不介绍数据库的配置了,请参考
一、增删改操作
@Test
@Ignore
public void crudTest() throws SQLException {
// 增
Long id = db.insertForGeneratedKey(Entity.create("user").set("name", "unitTestUser").set("age", 66));
Entity result = db.get("user", "name", "unitTestUser");
// 改
int update = db.update(Entity.create().set("age", 88), Entity.create("user").set("name", "unitTestUser"));
Assert.assertTrue(update > 0);
Entity result2 = db.get("user", "name", "unitTestUser");
// 删
int del = db.del("user", "name", "unitTestUser");
Assert.assertTrue(del > 0);
Entity result3 = db.get("user", "name", "unitTestUser");
}
启动测试时,回在控制台打印 SQL语句
SQL -> INSERT INTO `user` ( `name`, `age`) VALUES (?, ?)
Params -> [unitTestUser, 66]
UPDATE
`user`
SET
`age` = ?
WHERE
`name` = ?
Params -> [88, unitTestUser]
DELETE
FROM
`user`
WHERE
`name` = ?
Params -> [unitTestUser]
关于批量插入
@Test
@Ignore
public void insertBatchTest() throws SQLException {
User user1 = new User();
user1.setName("张三");
user1.setAge(12);
user1.setBirthday("19900112");
user1.setGender(true);
User user2 = new User();
user2.setName("李四");
user2.setAge(12);
user2.setBirthday("19890512");
user2.setGender(false);
Entity data1 = Entity.parse(user1);
Entity data2 = Entity.parse(user2);
Console.log(data1);
Console.log(data2);
ArrayList<Entity> entities = CollUtil.newArrayList(data1, data2);
int[] result = db.insert(entities);
Console.log(result);
}
控制台SQL输出为
INSERT INTO `user` (
`id`, `name`, `age`, `birthday`, `gender`
)
VALUES
(?, ?, ?, ?, ?)
Params -> []
二、关于查询
package tonels.test;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.db.ActiveEntity;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import cn.hutool.db.handler.EntityListHandler;
import cn.hutool.db.sql.Condition;
import cn.hutool.db.sql.Condition.LikeType;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import tonels.test.pojo.User;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* 增删改查测试
*
* @author looly
*
*/
public class CRUDTest {
private static Db db = Db.use("mysql");
@Test
public void findBetweenTest() throws SQLException {
List<Entity> result1 = db.findAll(Entity.create("user").set("age", "between '18' and '40'"));
// 对应 sql 为
// SELECT * FROM `user` WHERE `age` BETWEEN ? AND ?
}
@Test
public void findLikeTest() throws SQLException {
List<Entity> result2 = db.findAll(Entity.create("user").set("name", "like \"%三%\""));
// 对应 sql 为
// SELECT * FROM `user` WHERE `name` LIKE ?
}
@Test
public void findLikeTest3() throws SQLException {
List<Entity> result3 = db.findAll(Entity.create("user").set("name", new Condition("name", null, LikeType.Contains)));
// 对应 sql 为
// SELECT * FROM `user` WHERE `name` IS NULL
}
@Test
public void findTest() throws SQLException {
List<Entity> result4 = db.find(CollUtil.newArrayList("name AS name2"), Entity.create("user"), new EntityListHandler());
// 对应 sql 为
// SELECT name AS name2 FROM `user`
}
@Test
public void findActiveTest() throws SQLException {
ActiveEntity entity = new ActiveEntity(db, "user");
entity.setFieldNames("name AS name2").load();
// 对应 sql 为
// SELECT name as name2 FROM `user`
}
}