Play框架(五) 数据库

数据库是整个站点的数据储藏室。用户提交的数据可以存储在数据库中,以便未来使用。Play可以通过JDBC和数据库通信。我讲介绍Play和mysql数据库的连接。

Play 2.*版本的默认操作数据库的方式是通过Ebean。Play提供Finder这一帮助类型,可以实现一些简单的数据库查询。

数据库准备

在mysql中增加数据库testing。增加用户"player",密码为"player"。为用户player增加适当的权限。

CREATE DATABASE testing DEFAULT CHARACTER SET utf8;
CREATE USER 'player'@'localhost' IDENTIFIED BY 'player';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON testing.* TO 'player'@'localhost';

为了在Play中使用mysql数据库,需要在conf/application.conf中增加设置:

# Database configuration   

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://127.0.0.1:3306/testing"
db.default.user="player"
db.default.password="player"

# Ebean configuration
ebean.default="models.*"

还需要修改build.sbt为:

name := "test"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  "mysql" % "mysql-connector-java" % "5.1.18"
)   

play.Project.playJavaSettings

上面的改动完成后,使用play run来运行服务器。

创建模型

下面,我在模型中增加一个实体(entity),即一个Person类。放入models/Person.java

package models;   

import java.util.List;   

import javax.persistence.Entity;
import javax.persistence.Id;   

import play.db.ebean.Model;
import play.db.ebean.Model.Finder;   

@Entity
public class Person extends Model {
    @Id
    public Integer id;
    public String name;   

    // Query
    public static Finder<Integer,Person> find =
            new Finder<Integer,Person>(Integer.class, Person.class);   

    public static List<Person> findAll() {
        return find.all();
    }   

    public static Person findByName (String name) {
        return find.where().eq("name", name).findUnique();
    }
}

Person类继承自Model类,并有一个@Entity的注解,从而说明它是模型中的一个实体。实体有两个场,整数的id和字符串的name,用来保存数据。

@id注解下,id将不为空,不重复,并自动增加。

Person还有一个静态的场find。find是Play提供的Finder类型,用于数据库查询。而Person类中得findAll()和findByName()的静态方法中,就调用了find,从而在数据库中查询条目。

Play有evolution模块,管理数据库的表。写好Person.java后,访问项目。Play这时会生成在mysql中建立表格的脚本。运行该脚本即可。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/tools/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, mysql
, player
, play
, public
, person
, javajdbc
操作mysql框架
play框架查询数据库、play框架数据库、play框架连接数据库、android 数据库框架、数据库框架,以便于您获取更多的相关知识。

时间: 2024-05-18 22:02:27

Play框架(五) 数据库的相关文章

java三大框架-Java三大框架需要数据库和算法之类的知识吗?

问题描述 Java三大框架需要数据库和算法之类的知识吗? Java三大框架需要数据库和算法之类的知识吗? ava三大框架需要数据库和算法之类的知识吗? 解决方案 需要数据库的知识,算法不需要.但是作为一个程序员,你不可能只使三大框架吧.算法不懂只能算初级代码蓝领了. 解决方案二: 算法很重要,它让你考虑问题更全面,更效率.一段好代码至少要高效率,可维护,健壮.这些都离不开算法.别人五六行代码,你只需一两行.别人要反复遍历数据,你只需遍历一次.这就需要数据库知识和算法思维. 解决方案三: 算法是解

java struts2-怎样利用Java 中的struts2框架实现数据库中用户登录功能?

问题描述 怎样利用Java 中的struts2框架实现数据库中用户登录功能? 在Action中LoginAction怎样写? 配置文件中怎样写? 总体实现能够使数据库中已经存在的用户凭自己的密码与用户名登录成功呢?数据库是Oracle数据库.

针对SaaS应用程序的基于Hibernate框架的数据库分片

针对 SaaS 应用程序的基于 Hibernate 框架的数据库分片 SaaS 正在改变设计.构建.部署和操作应用程序的方式.开发一个 SaaS 应用程序与开发一个通用企业应用程序之间的关键区别在于,SaaS 应用程序必须是多租户的.其他关键 SaaS 需求,比如安全性.定制.面向服务的架构(SOA)和集成,也影响 SaaS 应用程序架构. 多租户是指应用程序在单一代码库内寄存多个承租者并共享数据库等架构的能力.有多种设计选项可启用多租户数据架构 - 每个承租者的专用数据库.每个承租者的共享数据

zf框架的数据库追踪器使用示例

 这篇文章主要介绍了zf框架的数据库追踪器使用示例,现把追踪器的使用方法分享给大家,需要的朋友可以参考下 调用追踪器的方法    代码如下: $Profiler = $Db -> getProfiler();    代码如下: <?php /* 追踪器的使用方法 */   //引入Loader类(自动加载类) require_once("Zend/Loader.php"); //使用Loader类引入一个Db类 Zend_Loader::loadClass("Ze

关于wcf 通过ef框架 访问数据库,得到值不能返回问题

问题描述 关于wcf 通过ef框架 访问数据库,得到值不能返回问题 我业务层通过调用wcf 服务, wcf访问数据库(ef 框架)后,得到数据,可是走到这一步 就卡住了,不能把数据返回业务层,请问这是那里问题 ? 解决方案 调试下,首先wcf服务返回了数据没有,其次,用抓包工具看下数据送到客户端调用者没有,最后看下客户端接收有没有问题

j2ee-我们项目用J2EE框架spring-security....数据库传值和方法一团糊,求助......

问题描述 我们项目用J2EE框架spring-security....数据库传值和方法一团糊,求助...... RT,照他们说法里dao里面是空的,我照着之前项目简单写了个注册 然后之前项目说方法写在action上直接调用....(项目里就action,service....) 求写过类似项目的人来点大致流程思路逻辑......现在感觉几个地方都是断的,连不起来,页面上值也传不进数据库 第一次提问....麻烦大家了~ 解决方案 大概和mybatis一样~sql操作是写在xml里面的~dao里面只

CI框架AR数据库操作常用函数总结_php实例

本文实例讲述了CI框架AR数据库操作常用函数.分享给大家供大家参考,具体如下: 1.查询表记录 $this->db->select(); //选择查询的字段 $this->db->select_max(); $this->db->select_min(); $this->db->select_avg(); $this->db->select_sum(); $this->db->from(); //选择表名 $this->db-&

SSH框架查询数据库信息,当无此信息时报错

问题描述 SSH框架查询数据库信息,当无此信息时报错 dao层:public Users findByName(Users user){ return (Users) getSession().createCriteria(Users.class).add(Restrictions.eq(""username"" user.getUsername())).list().get(0); }; service层: public Users findByName(User

entity framework-EF框架关于数据库两个关联的表操作的一些问题

问题描述 EF框架关于数据库两个关联的表操作的一些问题 在EF创建两个多对多关联的实体,并且映射到数据库中,在对中间表进行查询或是清除中间表的数据时操作失败,使用数据库跟踪发现没有生成相应的代码 static void Main(string[] args) { OAMangerEntities db = new OAMangerEntities(); var user = db.CreateObjectSet<UserInfo>().Where(u => u.ID == 2).Firs

CI框架中数据库操作函数$this-&amp;gt;db-&amp;gt;where()相关用法总结_php实例

本文实例总结了CI框架中数据库操作函数$this->db->where()相关用法.分享给大家供大家参考,具体如下: CI 框架数据库操作函数 this->db->where() 的使用 1) $this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE) 如果把$this->db->where() 接受可选的第三个参数设置为 FALSE, CodeIgniter 将不会为