📜  公用DBUtils-QueryRunner界面(1)

📅  最后修改于: 2023-12-03 15:22:33.446000             🧑  作者: Mango

公用DBUtils-QueryRunner界面介绍

简介

DBUtils-QueryRunner是Java语言中一个非常流行的JDBC类库,用于简化JDBC编程和管理JDBC资源。它提供了诸如批量更新、事务支持、参数化查询等丰富的特性,极大地降低了数据库操作的难度和工作量。

公用DBUtils-QueryRunner界面是一种基于DBUtils-QueryRunner的封装,旨在提供一种统一的、简单易用的数据库访问接口,使程序员可以更加专注于业务逻辑的开发。

功能特点
  • 简单易用:只需要少量的代码就可以完成数据库操作。
  • 可配置性强:可以通过配置文件或编程接口灵活配置数据库操作环境。
  • 安全可靠:支持事务回滚、防止SQL注入等安全特性,确保数据库访问的安全性与可靠性。
  • 高效性能:底层封装了连接池、缓存等机制,保障了JDBC连接和数据库资源的高效利用
代码示例
import com.github.database.rider.core.api.dataset.DataSet;
import com.github.database.rider.core.api.dataset.ExpectedDataSet;
import com.github.database.rider.core.api.connection.ConnectionHolder;
import com.github.database.rider.core.api.connection.DriverManagerConnectionHolder;
import com.github.database.rider.core.configure.DBUnit;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.dbunit.DatabaseUnitException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;

import static org.junit.Assert.assertEquals;

@DBUnit(leakHunter = true)
public class UserServiceTest {

    @Autowired
    private UserService userService;

    @Autowired
    private DataSource dataSource;

    private ConnectionHolder connectionHolder;

    @Before
    public void setup() throws SQLException, DatabaseUnitException {
        connectionHolder = new DriverManagerConnectionHolder(
                dataSource.getConnection(), "PUBLIC");
    }

    @Test
    @DataSet("users.yml")
    @ExpectedDataSet("expectedUsers.yml")
    public void shouldInsertUser() throws SQLException {
        User user = new User();
        user.setId(3L);
        user.setName("John");
        userService.insert(user);

        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        jdbcTemplate.query("SELECT * FROM users WHERE name='John'",
                new RowCallbackHandler() {
                    @Override
                    public void processRow(ResultSet rs) throws SQLException {
                        assertEquals(rs.getInt("id"), 3);
                        assertEquals(rs.getString("name"), "John");
                    }
                });
    }

    @Rule
    public DBUnitRule dbUnitRule = DBUnitRule.instance(() -> connectionHolder);

    @Test
    @DataSet("users.yml")
    @ExpectedDataSet("expectedUsers.yml")
    public void shouldUpdateUser() {
        User user = new User();
        user.setId(1L);
        user.setName("John");
        userService.update(user);
    }
}
总结

公用DBUtils-QueryRunner界面是一种非常实用的Java数据库访问库,是Java语言中数据库访问的重要工具。其简单易用、高效可靠、可定制化等优势,为开发和维护大型Java应用程序提供了强大的支持和保障。