comment puis-je me connecter à ma base de données avec le printemps et le tester?
Je suis en train de créer une connexion pour mon projet pour le printemps, soemthing très simple.
Je veux créer les champs de configuration sur ma demande.les propriétés. J'ai essayé avec le spring.datasource
et je n'obtiens pas d'erreur, mais tout de même, je n'obtiens aucune info, juste des pointeurs null... je pense que les connexions n'ont pas été faites correctement.
Ici une partie de mes pom, avec ce dépendances:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
Et mes propriétés:
server.port=80
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database
jdbc.username=user
jdbc.password=password
Je n'obtiens pas d'erreur, mais quand j'ai une requête à la base de données, j'ai toujours un pointeur null, ce qui me fait penser ne fonctionne pas correctement, une idée de comment configurer cela?
Grâce
EDIT:
Ma classe de configuration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
Le contrôleur
@Autowired
private MyService myService;
@RequestMapping("/")
public String index() {
User myUser = myService.findUserById(1L);
System.out.println(myUser);
return myUser.getFirstName();
}
Mon Service De La Mise En Œuvre
@Service
public class MyServiceImpl implements MyService {
@Autowired
UserRepository userRepository;
public User findUserById(Long id){
return userRepository.findOne(id);
};
}
Mon Entité
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Et mon référentiel
public interface UserRepository extends CrudRepository<User, Long> {
//User findOne(Long id); this is a default method
}
L'ERREUR:
Je reçois toujours un pointeur null, même si les données existent... et si je change la base de données de mot de passe pour un mauvais, je n'obtiens pas d'erreur.. comme si il serait ok.
la configuration de la classe?
Comment vous injecter de la fève?
Haricots qui? pour appeler la base de données? ou la fève de configuration?
La façon dont vous utilisez l'APP bean dans votre application? Peuvent vous fournir la chaîne de configuration [ok fournis] -> Application [ok fournis] -> Service et l'injection de la JPA fève dans le service -> la méthode utilisant la JPA connecteur? Pouvez-vous poster la trace de la pile d'exception?
OriginalL'auteur jpganz18 | 2015-09-05
Vous devez vous connecter pour publier un commentaire.
1) s'il vous Plaît supprimer en dessous de la dépendance de l'pom, car il pourrait laisser SpringBoot utiliser h2 au lieu de mysql, qui sont la cause, tu ne vois aucune erreur, même avec un mauvais mot de passe mysql.
2) Dans l'application.propriétés, veuillez utiliser:
Ces noms de propriété peut être trouvé à partir de SpringBoot document: http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html:
OriginalL'auteur JM Yang
La source de données approprié url est:
OriginalL'auteur SwEngin
Il vous manque de l'
@Repository
annotation sur votre Dépôt. Ajoutez-le et voyez si cela fonctionne pour vous.Si pas,
1. partager la trace de la pile complète qui vous obtenez.
2. Aussi, êtes-vous en mesure d'atteindre le contrôleur de point de terminaison?
Quelques petites choses à tester: - Placez un point d'arrêt dans votre service de classe et voir s'il atteint il. Puis claire et vérifiez la console que la requête est en fait déclenché. Si oui, qu'est-ce que cette requête? - Vérifier s'il existe une entrée dans la table Utilisateur ayant l'id = 1. Dans le contrôleur , en cas de retour de l'Utilisateur de l'objet est null, alors vous devriez obtenir une exception de pointeur null.
OriginalL'auteur Vipul Agarwal
J'ai remarqué que votre organisme n'a pas implémente l'interface Serializable.
Si ce n'est pas le problème, veuillez jeter un oeil à le printemps de démarrage exemple à partir de là github pour référence.
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-jpa/
OriginalL'auteur Rohan Surdikar