点击上方“
驱动程序安装
就像Java连接MySQL数据库需要JDBC一样,Scala连接MongoDB数据库也需要一种中间件,Casbah是MongoDB官方的Scala驱动程序包。MongoDB的Scala驱动程序可以使用以下依赖项添加到项目中:
你也可以从GitHub页面下载MongoDB的Scala驱动程序。不得不提,Scala包括其相关的驱动程序或参考文章在Github上也十分受欢迎,这其中有不少贡献来源于Java开发者。
MongoDB的Scala驱动程序附带了多个便于连接到MongoDB实例的类。
接下来,我们按步骤,一步步操作。
连接
与MongoDB实例的连接可以使用Mongo客户端设置。MongoClient是一个用来管理MongoDB连接的类。创建连接最简单的方法是使用如下语句:
可以在连接字符串中设置诸如认证,端口号等选项。例如,副本集选项可以设置为/?replicaSet=rs0。有关选项的完整列表,可以戳( 另一个方法是使用MongoClientSettings()类,MongoClientSettings()类可用于控制Mongo客户端的行为。先用ClusterSettings类将集群设置添加到Mongoclientsettings类。使用这三个类的连接语句如下:
默认情况下,是从系统的JDK中使用AsynchronousSocketChannel连接,如果你使用的SSL或JDK版本早于1.7,你还需要在SSL部分使用Netty,Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端(具体说明请戳 要验证MongoDB服务器提供的证书,需要将适当的CA证书添加到系统的信任存储。
你还需要为驱动程序添加属性,以便使用Netty库而不是使用AsynchronousSocketChannel。你需要下载NettyJAR并将它们添加到当前项目中,因为Scala依赖项不会自动下载它。下载完成后,还需要通过以下import语句导入:
使用SSL的MongoDB连接语句如下所写:
如果在连接服务器时遇到问题,你可以看看服务器SSL证书上的主机名是否与你构建MongoClient时指定的主机名相同。你可以在SslSettings中使用.invalidHostNameAllowed(true)禁用此设置。
验证
你可以使用MongoCredential类向MongoClientSettings中添加凭据。MongoCredentials类的典型用法如下:
请注意,当你在集群设置中添加了多个主机时,可以将凭据作为列表添加。例如,你可以为两个主机添加List(credential1,credential2).asJava。
总的来说,在Scala中使用SSL连接MongoDB的完整代码如下:
测试
一切设置完成后,为了确保可以正常运行,必须进行测试。测试时如果遇到任何问题,可以参考(北京治疗白癜风哪家医院权威如何防止白癜风复发