sql >> データベース >  >> NoSQL >> MongoDB

SpringBootはMysqlとMongoDbを接続します

    これを行うことは可能です。データソースごとに異なる構成を作成する必要があります。このリンクには、その良い例がありますhttp://www.baeldung.com/spring-data-jpa-multiple-databases

    もう1つの便利なスタックオーバーフローの質問:SpringBootが2つのデータソースを構成して使用する

    mongoとmysqlの使用を開始するには、spring.ioガイドの例に従ってください。

    https://spring.io/guides/gs/accessing-data-mongodb/

    https://spring.io/guides/gs/accessing-data-mysql/

    編集:

    上記の2つのサンプルをマージして、この1つの例を作成しました

    package hello;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
    import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
    
    import hello.model.Customer;
    import hello.model.User;
    import hello.mongodao.CustomerRepository;
    import hello.mysqldao.UserRepository;
    
    @EnableMongoRepositories(basePackageClasses = CustomerRepository.class)
    @EnableJpaRepositories (basePackageClasses = UserRepository.class)
    @SpringBootApplication
    public class Application implements CommandLineRunner {
    
        @Autowired
        private CustomerRepository repository;
    
        @Autowired
        private UserRepository userRepository;
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
        @Override
        public void run(String... args) throws Exception {
    
            System.out.println("getting data from Mongo");
            repository.deleteAll();
    
            // save a couple of customers
            repository.save(new Customer("Alice", "Smith"));
            repository.save(new Customer("Bob", "Smith"));
    
            // fetch all customers
            System.out.println("Customers found with findAll():");
            System.out.println("-------------------------------");
            for (Customer customer : repository.findAll()) {
                System.out.println(customer);
            }
            System.out.println();
    
            // fetch an individual customer
            System.out.println("Customer found with findByFirstName('Alice'):");
            System.out.println("--------------------------------");
            System.out.println(repository.findByFirstName("Alice"));
    
            System.out.println("Customers found with findByLastName('Smith'):");
            System.out.println("--------------------------------");
            for (Customer customer : repository.findByLastName("Smith")) {
                System.out.println(customer);
            }
    
            System.out.println("gettting data from mysql");
            userRepository.deleteAll();
    
            // save a couple of customers
            userRepository.save(new User("Alice", "[email protected]"));
            userRepository.save(new User("Bob", "[email protected]"));
    
            // fetch all customers
            System.out.println("Users found with findAll():");
            System.out.println("-------------------------------");
    
            for (User user : userRepository.findAll()) {
                System.out.println(user);
            }
    
        }
    }
    

    CustomerRepository.java

    package hello.mongodao;
    
    import java.util.List;
    
    import org.springframework.data.mongodb.repository.MongoRepository;
    
    import hello.model.Customer;
    
    public interface CustomerRepository extends MongoRepository<Customer, String> {
    
        public Customer findByFirstName(String firstName);
        public List<Customer> findByLastName(String lastName);
    
    }
    

    UserRepository.java

    package hello.mysqldao;
    
    import org.springframework.data.repository.CrudRepository;
    
    import hello.model.User;
    
    // This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
    // CRUD refers Create, Read, Update, Delete
    
    public interface UserRepository extends CrudRepository<User, Long> {
    
    }
    

    Customer.java

    package hello.model;
    
    import org.springframework.data.annotation.Id;
    
    
    public class Customer {
    
        @Id
        public String id;
    
        public String firstName;
        public String lastName;
    
        public Customer() {}
    
        public Customer(String firstName, String lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }
    
        @Override
        public String toString() {
            return String.format(
                    "Customer[id=%s, firstName='%s', lastName='%s']",
                    id, firstName, lastName);
        }
    
    }
    

    User.java

    package hello.model;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    
    @Entity // This tells Hibernate to make a table out of this class
    public class User {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        private Integer id;
    
        private String name;
    
        private String email;
    public User() {
        // TODO Auto-generated constructor stub
    }
        public User(String string, String string2) {
            // TODO Auto-generated constructor stub
            name = string;
            email = string2;
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        @Override
        public String toString() {
            return String.format(
                    "User[id=%s, name='%s', email='%s']",
                    id, name, email);
        }
    
    
    }
    

    application.properties

    spring.jpa.hibernate.ddl-auto=create
    spring.datasource.url=jdbc:mysql://localhost:3306/db_example
    spring.datasource.username=springuser
    spring.datasource.password=ThePassword
    spring.data.mongodb.uri=mongodb://localhost:27017/local
    


    1. Pythonを使用してMongoDBのbsondumpをJSONに変換するにはどうすればよいですか?

    2. タスク名でCeleryタスクを検査およびキャンセルする方法

    3. Railsキャッシングを使用する場合のRailsでのredismaxmemoryシチュエーションの処理

    4. Mongoid:IDの配列から検索