zoukankan      html  css  js  c++  java
  • 单测中使用内存式数据库加载自定义的sql脚本

    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;
    	}
    }
    

      

  • 相关阅读:
    跟踪创建类的个数
    动手动脑3
    动手动脑:随机数发生器和函数重载
    统计英语文章中单词
    动手动脑(1)
    原码、反码、补码
    java测试ATM自助操作系统
    深入浅出 TCP/IP 协议栈
    十大经典排序算法(动图演示)
    深入浅出 Viewport 设计原理
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/14805895.html
Copyright © 2011-2022 走看看