📅  最后修改于: 2023-12-03 15:22:33.446000             🧑  作者: Mango
DBUtils-QueryRunner是Java语言中一个非常流行的JDBC类库,用于简化JDBC编程和管理JDBC资源。它提供了诸如批量更新、事务支持、参数化查询等丰富的特性,极大地降低了数据库操作的难度和工作量。
公用DBUtils-QueryRunner界面是一种基于DBUtils-QueryRunner的封装,旨在提供一种统一的、简单易用的数据库访问接口,使程序员可以更加专注于业务逻辑的开发。
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应用程序提供了强大的支持和保障。