Java Spring Boot code to connect to MongoDB
Here's an example Java Spring Boot code to connect to a MongoDB database:
1. Add the MongoDB Java driver dependency to your pom.xml file:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.4.3</version>
</dependency>
2. Define the MongoDB connection properties in your application.properties file:
spring.data.mongodb.uri=mongodb://localhost:27017/mydatabase
3. Create a MongoConfig class to configure the MongoDB connection:
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@Configuration
@EnableMongoRepositories(basePackages = "com.example.myapp.repository")
public class MongoConfig extends AbstractMongoClientConfiguration {
@Override
protected String getDatabaseName() {
return "mydatabase";
}
@Override
@Bean
public MongoClient mongoClient() {
return MongoClients.create();
}
}
This code creates a 'MongoConfig' class that extends 'AbstractMongoClientConfiguration' and overrides two methods: 'getDatabaseName()' and 'mongoClient()'. 'getDatabaseName()' returns the name of the MongoDB database, while 'mongoClient()' returns a MongoClient object that connects to the MongoDB server using the connection URI defined in 'application.properties'.
4. Use the MongoRepository interface to define your MongoDB repository:
import org.springframework.data.mongodb.repository.MongoRepository;
import com.example.myapp.model.User;
public interface UserRepository extends MongoRepository<User, String> {
}
This code creates a UserRepository interface that extends MongoRepository and provides basic CRUD operations for the User class.
Now you can use UserRepository to interact with your MongoDB database. For example:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.example.myapp.model.User;
import com.example.myapp.repository.UserRepository;
@SpringBootApplication
public class MyApp implements CommandLineRunner {
@Autowired
private UserRepository userRepository;
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
@Override
public void run(String... args) throws Exception {
// Create a new user
User user = new User("John", "Doe", "john.doe@example.com");
userRepository.save(user);
// Find all users
Iterable<User> users = userRepository.findAll();
for (User u : users) {
System.out.println(u);
}
}
}
This code creates a Spring Boot application that injects UserRepository and uses it to save a new user and retrieve all users from the MongoDB database. Note that you don't need to write any explicit code to connect to the database - Spring Boot takes care of it for you.