使用Solon 3.0中的SqlUtils接口进行数据库操作

随着Solon 3.0版本的发布,新增了SqlUtils接口,用于数据库操作。SqlUtils是对Jdbc原始接口的封装,适用于SQL较少或较复杂,或者ORM不适用的场景。

下面将介绍如何使用SqlUtils进行数据库操作。

一、SqlUtils的使用

1、引入依赖

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-data-sqlutils</artifactId>
</dependency>

2、新建数据库表(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、定义实体类

使用了lombok的注解。

@Data
public class Book {
    private Long id;
    private String name;
    private String author;
}

4、添加数据源配置

solon.dataSources:
  book!: # ‘!’结尾表示默认
    class: "com.zaxxer.hikari.HikariDataSource"
    jdbcUrl: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
    driverClassName: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

5、注入SqlUtils并使用

注入

@Component
public class BookDao {
    @Inject
    private 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();
}

二、总结

使用SqlUtils可以完成基本的数据库操作,具有更好的透明性。当然,对于持久化数据库操作,ORM是更好的方案。具体使用取决于开发需求。

未经允许不得转载:大白鲨游戏网 » 使用Solon 3.0中的SqlUtils接口进行数据库操作