ä¸ãHutool å
³äºæ°æ®åºçæä½ç¤ºä¾
1.1 è¿æ¥æ°æ®åºï¼å è½½ config/db.setting
#===================================================================
# æ°æ®åºé
ç½®æä»¶æ ·ä¾
# DsFactoryé»è®¤è¯»åçé
ç½®æ件æ¯config/db.setting
# db.settingçé
ç½®å
æ¬ä¸¤é¨åï¼åºæ¬è¿æ¥ä¿¡æ¯åè¿æ¥æ± é
置信æ¯ã
# åºæ¬è¿æ¥ä¿¡æ¯ææè¿æ¥æ± é½æ¯æï¼è¿æ¥æ± é
置信æ¯æ ¹æ®ä¸åçè¿æ¥æ± ï¼è¿æ¥æ± é
ç½®æ¯æ ¹æ®è¿æ¥æ± ç¸åºçé
置项移æ¤èæ¥
#===================================================================
## æå°SQLçé
ç½®
# æ¯å¦å¨æ¥å¿ä¸æ¾ç¤ºæ§è¡çSQLï¼é»è®¤false
showSql = true
# æ¯å¦æ ¼å¼åæ¾ç¤ºçSQLï¼é»è®¤false
formatSql = true
# æ¯å¦æ¾ç¤ºSQLåæ°ï¼é»è®¤false
showParams = true
# æå°SQLçæ¥å¿ç级ï¼é»è®¤debug
sqlLevel = debug
[mysql]
url = jdbc:mysql://localhost:3306/proce?useSSL=false # è¿éæå®æ°æ®åº
user = root
pass = root
è¿éæ¯æµè¯modelç建表è¯å¥å对åºModelç±»
CREATE TABLE `user` (
`id` int(11) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`gender` varchar(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@Data
public class User {
private Integer id;
private String name;
private int age;
private String birthday;
private boolean gender;
}
1.1 æµè¯ MetaUtil
public class MetaUtilTest {
DataSource ds = DSFactory.get("mysql"); // å è½½ Mysql æ°æ®åº
@Test
public void getTablesTest() {
List<String> tables = MetaUtil.getTables(ds);
}
@Test
public void getTableMetaTest() {
Table table = MetaUtil.getTableMeta(ds, "user");
}
}
è¿åæ°æ®
tables = [Atest, author, book, city, state, user]
table = {
"pkNames": [],
"columns": [
{
"size": 10,
"isNullable": true,
"name": "id",
"typeName": "INT",
"comment": "",
"type": 4,
"tableName": "user"
},
{
"size": 20,
"isNullable": true,
"name": "name",
"typeName": "VARCHAR",
"comment": "",
"type": 12,
"tableName": "user"
},
{
"size": 10,
"isNullable": true,
"name": "birthday",
"typeName": "DATE",
"comment": "",
"type": 91,
"tableName": "user"
},
{
"size": 2,
"isNullable": true,
"name": "gender",
"typeName": "VARCHAR",
"comment": "",
"type": 12,
"tableName": "user"
}
],
"comment": "",
"tableName": "user"
}
1.2 conditionTest
@Test
public void toStringTest() {
Condition c1 = new Condition("name", null);
System.out.println(c1);
Condition c2 = new Condition("birthday", "!= null");
System.out.println(c2);
Condition c3 = new Condition("name", "= zhangsan");
System.out.println(c3);
Condition c4 = new Condition("name", "like %aaa");
System.out.println(c4);
Condition c5 = new Condition("id", "in 1,2,3");
System.out.println(c5);
Condition c6 = new Condition("age", "between 12 and 13");
System.out.println(c6);
}
æ§å¶å°è¾åºä¸ºï¼é»è®¤æ¡ä»¶å ä½ç¬¦ä¸º True
name IS NULL
birthday IS NOT NULL
name = ?
name LIKE ?
id IN (?,?,?)
age BETWEEN ? AND ?
è¿æå
³äºæ¡ä»¶å ä½ç¬¦çå¼å¯ä¸å
³éï¼è¿éæå®ä¸ºå
³é
@Test
public void toStringNoPlaceHolderTest() {
Condition conditionNull = new Condition("user", null);
conditionNull.setPlaceHolder(false);
System.out.println(conditionNull);
Condition conditionNotNull = new Condition("user", "!= null");
conditionNotNull.setPlaceHolder(false);
System.out.println(conditionNotNull);
Condition conditionEquals = new Condition("user", "= zhangsan");
conditionEquals.setPlaceHolder(false);
System.out.println(conditionEquals);
Condition conditionLike = new Condition("user", "like %aaa");
conditionLike.setPlaceHolder(false);
System.out.println(conditionLike);
Condition conditionIn = new Condition("user", "in 1,2,3");
conditionIn.setPlaceHolder(false);
System.out.println(conditionIn);
Condition conditionBetween = new Condition("user", "between 12 and 13");
conditionBetween.setPlaceHolder(false);
System.out.println(conditionBetween);
}
æ§å¶å°è¾åºä¸ºï¼åä¸é¢çè¾åºæ¯è¾ä¸ä¸åºå«
user IS NULL
user IS NOT NULL
user = zhangsan
user LIKE %aaa
user IN (1,2,3)
user BETWEEN 12 AND 13
1.3 SqlBuilderæµè¯
@Test
public void queryNullTest() {
SqlBuilder builder = SqlBuilder.create().select().from("user").where(new Condition("name", "= null"));
System.out.println(builder);
SqlBuilder builder2 = SqlBuilder.create().select().from("user").where(new Condition("name", "is null"));
System.out.println(builder2);
SqlBuilder builder3 = SqlBuilder.create().select().from("user").where(LogicalOperator.OR, new Condition("name", "!= null"),new Condition("name","like%as"));
System.out.println(builder3);
SqlBuilder builder4 = SqlBuilder.create().select().from("user").where(LogicalOperator.AND, new Condition("name", "is not null"),new Condition("id", "in 12,13,14"));
System.out.println(builder4);
}
æ§å¶å°è¾åºä¸º
SELECT * FROM user WHERE name IS NULL
SELECT * FROM user WHERE name IS NULL
SELECT * FROM user WHERE name IS NOT NULL OR name = ?
SELECT * FROM user WHERE name IS NOT NULL AND id IN (?,?,?)
ä¸ä¸ç¯ï¼åºäºHutoolå
ççå¢å æ¹æ¥æä½