我有这样的配置文件:
spring.datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:mem:mydb;MODE=MySQL
server:
port: 9001
我的主要
@SpringBootApplication
public class SpringJmsApplication implements CommandLineRunner {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(SpringJmsApplication.class, args);
}
@Resource
DataSource dataSource;
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public void run(String... strings) throws Exception {
log.info("Creating tables" + jdbcTemplate.toString());
log.info("<<<<<<<<<<<<<<<<<<<<<<<<" + dataSource.getConnection().getCatalog()+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
jdbcTemplate.execute("DROP TABLE customers IF EXISTS");
jdbcTemplate.execute("CREATE TABLE xxx(" +
"id SERIAL, first_name VARCHAR(255), last_name VARCHAR(255))");
}
}
在我的控制台http://localhost:9001/console/中,我使用url参数jdbc:h2:mem:mydb进入我的数据库,找不到我的表,但是使用参数jdbc:h2:mem:testdb我看到了我的xxx表。如何解决这个问题?
dataSource.getConnection().getCatalog()
始终返回“TESTDB”
答案 0 :(得分:0)
您必须在spring-boot-starter-jdbc
文件中提供build.gradle
依赖项。
替换:
compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.11.RELEASE
使用:
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc'
可能spring-boot-starter-jdbc
处理此属性处理。
答案 1 :(得分:0)
将此添加到您的applicaton.properties
spring.datasource.url=jdbc:h2:mem:testdb