2017-08-29 13 views
1

Ich habe das Docker-Image mysql hochgespielt.Spring Boot Verbindung mit dem Andockfenster mysql

Von docker ps:

bcb0a900b693 mysql:latest "docker-entrypoint..." 5 hours ago Up About an hour 0.0.0.0:3306->3306/tcp chrisbolton

ich ein Grund Projekt angelegt haben, wo ich eine einfache Klasse geschaffen haben.

@SpringBootApplication 
@RestController 
public class ChrisboltonServiceApplication { 

public static void main(String[] args) { 
    SpringApplication.run(ChrisboltonServiceApplication.class, args); 
} 

@Autowired 
private JdbcTemplate jdbcTemplate; 

@RequestMapping("/hello") 
public String sayHello(){ 
    return "Hello"; 
} 

@RequestMapping(path="/blogs") 
public @ResponseBody Iterable<ChrisBolton> getAllUsers() { 
    List<ChrisBolton> result = jdbcTemplate.query(
      "SELECT * FROM blog", 
      (rs, rowNum) -> new ChrisBolton(rs.getString("author"), 
               rs.getString("title"), 
               rs.getString("content"), 
               rs.getDate("date")) 
    ); 

    return result; 
} 

}

ich meine Konfiguration platziert habe in meinem application.properties

spring.main.banner-mode=off 

spring.datasource.url=jdbc:mysql://localhost:3306 
spring.datasource.username=root 
spring.datasource.password=opening 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

Wenn ich meine App starten, ich bin in der Lage zu treffen localhost:8080/hello die Hello!

kehrt Wenn ich localhost:8080/blogs getroffen , Bekomme ich diesen Fehler

Also ich denke, ich verstehe nicht, wie die autowired vollständig funktioniert.

Ich habe versucht, in beans oder vielleicht mit der Connection Klasse zu suchen. Aber was ist die korrekte Spring Boot Art der Verbindung zu meiner mysql Instanz?

Antwort

3

Sieht aus wie Ihr den Namen der Datenbank fehlen, die Datenbank mit dem Namen Test zum Beispiel:

spring.datasource.url=jdbc:mysql://localhost:3306/test

Hoffe, dass es

+0

omg, das es war. eine dieser wirklich kleinen Sache. Vielen Dank! –

1

Das Problem hilft, die Sie konfrontiert sind, weil Sie nicht die Datenbank bereitgestellt werden Name, können Sie daher keine Abfrage für einen ganzen Server durchführen.

Falsches Format:

spring.datasource.url = jdbc: mysql: // localhost: 3306

Rechts Format:

spring.datasource.url = jdbc : mysql: // localhost: 3306/accounts

Das allgemeine Format ist wie dieser

jdbc: [Datenbanktyp]: // [Host Resolver]: [Anschluss]/[Datenbankname]

Verwandte Themen