scala play2 mySQL_scala+play2.2.2+slick2.0.2 + mysql5.0整合之一---基础环境搭建篇

从命令行进入到你的工作目录(workspace),执行play new helloworld。等命令执行完,项目(helloworld)就创建成功了。关于项目的结构,也不多讲网上也有很多这样的文章。

cd helloworld, 进入项目根目录,执行play,再执行idea,这个命令是生成导入idea开发工具所需要的文件和结构,然后可以用idea将项目导入了。

在项目根目录下执行 run, 把项目启动,在本地访问http://localhost:9000/。  看项目是否成功启动。那这样一个纯的play项目就跑起来了。

在项目根目录下的build.sbt中,加入slick和mysql驱动。libraryDependencies ++= Seq(

jdbc,

anorm,

cache,

"mysql" % "mysql-connector-java" % "5.1.18",

"com.typesafe.slick" %% "slick" % "2.0.2",

"org.slf4j" % "slf4j-nop" % "1.6.4"

)

然后ctrl+D 停掉服务,输入play,再执行reload。让项目加载本次改动,引入相关依赖的jar包。

在项目根目录/conf/application.conf中,加入如下数据库连接信息内容db.default.driver=com.mysql.jdbc.Driver

db.default.url="jdbc:mysql://172.16.0.90:3306/test?characterEncoding=UTF-8"

db.default.user="root"

db.default.password="root"

基本的配置信息到这就算完成了,接下来我们就要测试,整个环境是否有问题了。我选择的是plain SQL的方式(即原生sql的方式)

建一张数据库表来做测试,就叫帐号表,用户名,密码:CREATE TABLE `T_ACCOUNT` (

`id` int(11) NOT NULL AUTO_INCREMENT ,

`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

`password` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

`isAdmin` int(11) NULL DEFAULT NULL ,

PRIMARY KEY (`id`)

)

ENGINE=InnoDB

DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

AUTO_INCREMENT=4

ROW_FORMAT=COMPACT

;

在Scala中,建好实体,来做映射case class Account(id : Int,username:String,password:String,isAdmin:Boolean)

创建好数据库对象package models

/**

* Created by Administrator on 2014/8/11.

*/

import scala.slick.jdbc.JdbcBackend.Database

import play.api.Play.current

object MyDatabase {

/**

* init configuration from application.conf.

* Only user in play Application

*/

private val conf = current.configuration

private val dbUrl = conf.getString("db.default.url").getOrElse("")

private val user = conf.getString("db.default.user").getOrElse("root")

private val pwd = conf.getString("db.default.password").getOrElse("root")

private val driverClass = conf.getString("db.default.driver").getOrElse("com.mysql.jdbc.Driver")

/**

* create the database instance with configuration

*/

val database = Database.forURL(dbUrl, user, pwd, driver = driverClass)

}

接下来,我们就操作编写一个数据库操作类object Account{

private val mdb = MyDatabase.database

val resultParser = GetResult[Account](r => Account(r.<

def allAccounts():Seq[Account]={

val sql= "select * from t_account"

mdb.withSession{

implicit session=>

StaticQuery.queryNA[Account](sql).list()

}

}

}

然后我们再编写一个Controller进行验证,将结果打成Json,这样免得编写界面。package controllers

import play.api.mvc.Controller

import models.Account

import play.api.mvc.Action

import play.api.libs.json._

/**

* Created by Administrator on 2014/8/11.

*/

object AccountController extends Controller {

implicit val AccountFormat = Json.format[Account]

def listAll = Action {

implicit request =>

val list = Account.allAccounts

val json = Json.toJson(list)

Ok(json).as("application/json")

}

}

然后在项目根目录/conf/routes中增加一个路由配置:GET /accounts controllers.AccountController.listAll

然后在命令行中执行play,再执行run.  在浏览器中输入:http://localhost:9000/accounts,整个Json串就打印出来了。说明整个环境是成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值