Scala 在米国已经发展的如火如荼,有些人甚至说Scala将成为未来语言的头号交椅。简洁的代码和表达式的写法让很多人倍感舒适,函数式和面向对象的编程范式也让其能在多种场合游刃有余的被使用。加之它是跑在JVM虚拟机上的,可以完美的调用java,让很多现存的技术可以继续保留,降低了维护成本。但是,Scala过度复杂的语法也让无数开发者头疼,知乎上有人说他是“全宇宙最难学的语言”,我想说“呵呵”,事在人为嘛,我们要有“铁杵磨成针”的态度,不会的慢慢学,年轻就应该这么任性!!

好了,扯了这么多废话,让我们进入主题:如何使用playframework 来连接数据库。playframework是当下比较流行的开发框架,java和Scala都可以使用,但是Scala用的比较多一点。在这里我用的是Scala。

正式开始:

1、首先创建一个工程,名字为:HelloWorld;

不建议用IDE创建,因为现在IntelliJ idea和Eclipse做的Scala插件还不够好用,开发中会出现很多问题,建议用typeSafe魔板创建。

2、打开工程的bulid.sbt文件;加上这么一句:

3、然后将mysql的驱动也加上


  在sbt中加入了新的依赖以后,一定要记得refresh一下,这样sbt才能将新加的东西加入。

4、接下来,我们打开conf/application.conf文件,


将自己的数据库链接信息添上去。

注意,如果想链接多个数据源,只需要修改“db.default.driver”就可以,注意“db.default.driver”中“default”是数据源的名字,可以修改。例如,你想创建一个“abc”数据源,就可以写成“db.abc.driver”

,在代码中获取数据源的时候,就写成DB.getDataSource("abc"),如果想获取默认数据源(default),可以直接写成DB.getDataSource(),因为:
这是源码,显而易见了吧。而且通过源码,可以知道,play用的数据库链接池是BoneCP,这是一个很棒的数据库连接池,比DBCP和C3P0要快很多,但是没有HikariCP快,BoneCP的官方文档是这么说的:“It beats older connection pools such as C3P0 and DBCP but should now be considered deprecated in favour of HikariCP”不知道play以后会不会使用HikariCP作为数据库连接池。而且,play的数据库连接池是写死的,没法通过application.conf扩展数据库连接池(可以用其他途径扩展,如自己在sbt中依赖数据库连接池,然后不通过配置文件,用数据库本身的方法来获取数据源实现连接。),个人感觉应该改良一下,呵呵,勿拍砖,已包扎。

6、用play自带的连接池链接数据库

创建一个Db object,在object中写一个函数(或者一个成员变量也可以),获取数据源,连接数据库。

 注意,一定要“import scala.slick.driver.MySQLDriver.simple._”和“import play.api.Play.current”,特别是后者,非常容易忘,因为“DB.getDataSource()”会需要一个隐式参数(第五步的源码图中可以看到),所以即使漏“play.api.Play.current”在IDE里编写也不会出错。

7、根据自己的数据库表,生成models(或者根据entity生成数据库表也可以)。如何生成可以查看slick文档

http://slick.typesafe.com/docs/。利用models,实现数据的增删改查。

当然喽还有其他方式可以实现数据库的链接,但是个人感觉这是最好的方式。typeSafe中的给的几个例子都是基于DBAction的,个人感觉这样有些弊端,因为如果用DBAction的话,controller层和model层就不紧密结合了,不符合play本身MVC的设计模式。

以上。

playframework链接MySQL数据库的问题的更多相关文章

  1. Python学习笔记9-Python 链接MySql数据库

    Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...

  2. Tomcat通过JNDI方式链接MySql数据库

    原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源 局部数据源 在Tomcat的conf/C ...

  3. C# 链接MySql数据库

    C# 链接MySql数据库只得注意的几点: 1.C#链接MySql数据库要在网上下载一个mysql-connector-net-6.0.4-noinstall.rar  这里面放的都是一堆dll .将 ...

  4. 写给小白的JAVA链接MySQL数据库的步骤(JDBC):

    作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...

  5. Java链接MySQL数据库的用配置文件和不用配置文件的代码

    1.利用配置文件(db.properties)链接MySQL数据库 package tool; import java.io.FileInputStream;import java.sql.Conne ...

  6. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  7. Java基于jdbc链接mysql数据库步骤示列

    用JDBC来链接MYSQL数据库,基本步骤都大同小异,只不过不同的数据库之间的URL地址有些不同.其基本步骤可分为以下几点: 1.加载相应的数据库的JDBC驱动程序. 2.利用驱动管理器DriverM ...

  8. jmeter链接mysql数据库

    一.下载与MySQL对应的jar包 1.1.查询MySQL的版本, 命令语句 :SELECT VERSION(); 1.2.MySQL官网下载jar包 ,https://downloads.mysql ...

  9. 用PHP链接mysql数据库

    PHP提供了两套数据库可用于访问mysql数据库 1)MySQL扩展函数数据库 2)MySQLI扩展数据库(improved) 使用MySQLI函数访问MySQL数据库步骤 1)链接数据库管理系统 m ...

随机推荐

  1. Azure CosmosDB (1) 概述

    <Windows Azure Platform 系列文章目录> Azure CosmosDB是一个全球分布式数据库服务(Global Distributed Database),提供低延迟 ...

  2. DokuWiki 命名空间管理

    为了更好的组织结构,Dokuwiki提供了命名空间这个功能,那怎么管理命名空间的,其实可以安装插件去管理 Add New Page Plugin:新建界面 https://www.dokuwiki.o ...

  3. 通过zipfile解压指定目录下的zip文件

    代码: # -*- coding: utf-8 -*- import os import zipfile import platform import multiprocessing # 解压后的文件 ...

  4. Pillow《转载》

    Pillow https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432002 ...

  5. Scala map与flatMap

    1. map函数   对集合的每一个元素运用某个函数操作,然后将结果作为一个新的列表返回. 实例1:将列表中每个元素值乘以2 scala> val list1=List(1,2,3,4) lis ...

  6. linux 配置vue环境

    系统 [root@Gao conf.d]# uname -a 工具 1.Final Shell 2.工具截图 需要下载的部分 node.js    npm   cnpm   vue-cli 安装nod ...

  7. day39数据库之基本数据类型

    数据库之数据类型1.数据存储引擎 一个功能的核心部分,回到mysql        核心功能是存储数据  涉及到存储数据的代码 就称之为存储引擎        根据不同的需求 也有着不同的引擎分类 不 ...

  8. 浅析MySQL中concat以及group_concat的使用

      说明: 本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接 ...

  9. C#与Excel的交互示例

    //这里加添加一个Excel对象的包装器.就是添加一个引用 using System; using System.Drawing; using System.Collections; using Sy ...

  10. threading 多线程类继承方式调用

    import threading #线程import time class Work(threading.Thread): def __init__(self,n): threading.Thread ...