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

      

  • 相关阅读:
    “显示桌面”代码
    Jquery 判断CheckBox是否选中
    Jquery 得到隐藏列的值
    Jquery 得到DataGrid单击单元格后得到主键列值
    RadioButtonList的项增加onClick事件
    正则表达式 替换除中文、字母、数字以外的字符
    正则表达式中 中文 Unicode字符(转)
    Jquery 设置table、DataGrid等的某列单击的方法
    GridView自动生成列的隐藏
    AutoCAD利用VB交互创建应用程序交互
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/14805895.html
Copyright © 2011-2022 走看看