1. 程式人生 > >使用MongoDB資料庫(2)(三十六)

使用MongoDB資料庫(2)(三十六)

快速開始使用Spring-data-mongodb

若MongoDB的安裝配置採用預設埠,那麼在自動配置的情況下,我們不需要做任何引數配置,就能馬上連線上本地的MongoDB。下面直接使用spring-data-mongodb來嘗試對mongodb的存取操作。(記得mongod啟動您的mongodb)

  • 建立要儲存的User實體,包含屬性:id、username、age
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public  class  User {        @Id      private  Long id;
           private  String username;      private  Integer age;       
    public  User(Long id, String username, Integer age) {          this .id = id;          this .username = username;          this .age = age;      }        // 省略getter和setter   }
  • 實現User的資料訪問物件:UserRepository
    1 2 3 4 5 public  interface  UserRepository  extends  MongoRepository<User, Long> {        User findByUsername(String username);   }
  • 在單元測試中呼叫
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 @RunWith (SpringJUnit4ClassRunner. class ) @SpringApplicationConfiguration (Application. class ) public  class  ApplicationTests {        @Autowired      private  UserRepository userRepository;        @Before      public  void  setUp() {          userRepository.deleteAll();      }        @Test      public  void  test()  throws  Exception {            // 建立三個User,並驗證User總數          userRepository.save( new  User(1L,  "didi" 30 ));          userRepository.save( new  User(2L,  "mama" 40 ));          userRepository.save( new  User(3L,  "kaka" 50 ));          Assert.assertEquals( 3 , userRepository.findAll().size());            // 刪除一個User,再驗證User總數          User u = userRepository.findOne(1L);          userRepository.delete(u);          Assert.assertEquals( 2 , userRepository.findAll().size());            // 刪除一個User,再驗證User總數          u = userRepository.findByUsername( "mama" );          userRepository.delete(u);          Assert.assertEquals( 1 , userRepository.findAll().size());        }   }

    引數配置

    通過上面的例子,我們可以輕而易舉的對MongoDB進行訪問,但是實戰中,應用伺服器與MongoDB通常不會部署於同一臺裝置之上,這樣就無法使用自動化的本地配置來進行使用。這個時候,我們也可以方便的配置來完成支援,只需要在application.properties中加入mongodb服務端的相關配置,具體示例如下:

    1 spring.data.mongodb.uri=mongodb: //name:[email protected]:27017/test

      

    在嘗試此配置時,記得在mongo中對test庫建立具備讀寫許可權的使用者(使用者名稱為name,密碼為pass),不同版本的使用者建立語句不同,注意檢視文件做好準備工作

    若使用mongodb 2.x,也可以通過如下引數配置,該方式不支援mongodb 3.x。

    1 spring.data.mongodb.host=localhost spring.data.mongodb.port= 27017