首页 > 数据库技术 > 详细

单测中使用内存式数据库加载自定义的sql脚本

时间:2021-05-24 22:50:59      阅读:25      评论:0      收藏:0      [点我收藏+]
import com.insgeek.platform.rule.RuleApplication;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.core.io.ClassPathResource;

import javax.sql.DataSource;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * @author jiangliangyou
 * @date 2020-07-08
 */
@Slf4j
@Configuration
@Import(value = {RuleApplication.class})
@Profile("test")
public class TestBeanConfig {
	@Bean
	public DataSource getDataSource() throws SQLException {
		DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
		dataSourceBuilder.driverClassName("org.h2.Driver");
		dataSourceBuilder.url("jdbc:h2:mem:test;database_to_upper=false;");
		dataSourceBuilder.username("sa");
		dataSourceBuilder.password("").build();
		DataSource dataSource = dataSourceBuilder.build();
		Connection connection = null;
		try {
			ClassPathResource classPathResource = new ClassPathResource("test.sql");
			connection = dataSource.getConnection();
			ScriptRunner runner = new ScriptRunner(connection);
		    runner.setErrorLogWriter(null);
            runner.setLogWriter(null);
         // 执行SQL脚本
            runner.runScript(new InputStreamReader(classPathResource.getInputStream(), StandardCharsets.UTF_8));
            // 关闭连接
            connection.close();
            // 若成功,打印提示信息
            System.out.println("====== SUCCESS ======");
		} catch (Exception e) {
			log.error(e.getMessage());
		} finally {
			if (connection != null) {
				connection.close();
			}
		}
		return dataSource;
	}
}

  技术分享图片

 

单测中使用内存式数据库加载自定义的sql脚本

原文:https://www.cnblogs.com/zhlblogs/p/14805895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!