从本地数据库切换到SQL服务器

时间:2017-05-05 15:09:41

标签: sql-server spring-boot jdbctemplate

所以我们当前的代码将csv文件加载到本地jdbcTemplate中,然后我进行一些查询。问题始终是性能,我们终于可以访问可以加载数据的SQL服务器。当然,该公司得到了基本没有数据库技能的人来设置它:P

    @Autowired
    DataSource dataSource;

     @RequestMapping("/queryService")
        public void queryService(@RequestParam("id")String id)
    {
    log.info("Creating tables");

            jdbcTemplate.execute("DROP TABLE accounts IF EXISTS");
            jdbcTemplate.execute("CREATE TABLE accounts(id VARCHAR(255), name VARCHAR(255), Organization__c VARCHAR(255)";

     insertBatch(accounts,dataSource);
     ArrayList<Account2> filteredaccs = filterAccount(jdbcTemplate);

        public void insertBatch(ArrayList<Account2> accs, DataSource dataSource) {
    List<Map<String, Object>> batchValues = new ArrayList<>(accs.size());
            for (Account2 a : accs) {
                Map<String, Object> map = new HashMap<>();
                map.put("id", a.getId());
                map.put("name", a.getName());
                map.put("Organization__c", a.getOrganization__c());
                batchValues.add(map);
    }
    SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource).withTableName("accounts");

            int[] ints = simpleJdbcInsert.executeBatch(batchValues.toArray(new Map[accs.size()]));


}

public ArrayList<Account2> filterAccount(JdbcTemplate jdbcTemplate)
{
 String sql= "query string";
ArrayList<Account2> searchresults = (ArrayList<Account2>) jdbcTemplate.query(sql,
                    new RowMapperResultSetExtractor<Account2>(new AccountRowMapper(), 130000));
return searchresults;
}

public class AccountRowMapper implements RowMapper<Account2> {
        public Account2 mapRow(ResultSet rs, int rowNum) throws SQLException {
            Account2 a = new Account2();
            a.setId(rs.getString("id"));
            a.setName(rs.getString("name"));
            a.setOrganization__c(rs.getString("Organization__c"));
return a;
}
}

这里的问题是,我最快捷的方式是切换&#39;使用SQL服务器将数据拉下来,使用相同的表和行,而不会更改我当前的代码?

0 个答案:

没有答案