佛山市建設(shè)行政主管部門網(wǎng)站網(wǎng)絡(luò)優(yōu)化工作內(nèi)容
一、前言
隨著 Solon 3.0 版本發(fā)布,新添加的 SqlUtils 接口,用于操作數(shù)據(jù)庫(kù),SqlUtils 是對(duì) Jdbc 原始接口的封裝。適合 SQL 極少或較復(fù)雜,或者 ORM 不適合的場(chǎng)景使用。
二、SqlUtils 使用
1、引入依賴
<dependency><groupId>org.noear</groupId><artifactId>solon-data-sqlutils</artifactId>
</dependency>
2、新建數(shù)據(jù)庫(kù)表(for MySql)
CREATE TABLE `book` (`id` bigint(20) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`author` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
3、定義實(shí)體類
使用了 lombok 的注解。
@Data
public class Book {private Long id;private String name;private String author;
}
4、添加數(shù)據(jù)源配置
solon.dataSources:book!: # ‘!’結(jié)尾表示默認(rèn)class: "com.zaxxer.hikari.HikariDataSource"jdbcUrl: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=truedriverClassName: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456
5、注入 SqlUtils 并使用
注入
@Component
public class BookDao {@Injectprivate SqlUtils sqlUtils;
}
查詢操作
public List<Book> getAllBooks() {return sqlUtils.sql("select * from book").queryRowList().toBeanList(Book.class);
}
新增操作
public Long addBook(Book book) {return sqlUtils.sql("INSERT INTO book (name , author) VALUES (?,?)", book.getName(), book.getAuthor()).updateReturnKey();
}
更新操作
public int updateBook(Book book) {return sqlUtils.sql("UPDATE book SET name=?, author=? WHERE id=?", book.getName(), book.getAuthor(), book.getId()).update();
}
總結(jié)
使用 SqlUtils 可以完成基本的數(shù)據(jù)庫(kù)操作,有更好的透明性。當(dāng)然,持久化數(shù)據(jù)庫(kù)操作 ORM 是更方好方案。具體根據(jù)開發(fā)決定。