无法连接到 MySQL 并在 Play Framework 2.4 中执行操作

Unable to connect to MySQL and perform operations in Play Framework 2.4

我是 Play 和 Java 的新手(我来自 Python 和 Django 背景 :))。我正在尝试连接到 MYSQL 数据库并从中读取值。但是,在尝试了几个令人沮丧的小时后,我无法这样做。请帮助。

我的 build.sbt 添加了依赖项:

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

我的 Application.conf 文件是(相关部分)

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://127.0.0.1:3306/myDBName"
db.default.user="root"
db.default.password="myPassword"

我正在尝试在应用程序启动时从 Db 中读取值。稍后我也想通过控制器中的任何操作来完成它。我代码的相关部分:

import java.sql.ResultSet;
import java.sql.SQLException;
import play.db.*;
import javax.sql.DataSource;

@Override
public void onStart(play.Application appConfig){
DataSource dataSources = DB.getDataSource();
java.sql.Connection connectionSQL =  DB.getConnection();
ResultSet rs = connectionSQL.prepareStatement("select * from mytable").executeQuery();
while(rs.next()) {
      System.out.println(rs.getString(1));
      Logger.debug(rs.getString(1));
     }
}

但是我得到一个空指针异常。我还尝试了许多其他 SO 问题,例如 Simple CRUD tutorial about Play Framework and MySQL using Ebean? but they are all for previous versions. Also,the official Documentation 在这方面似乎缺乏。我知道这是一个相对较新的开源项目,但这只是我的两分钱。如果我能够做到这一点,我会尝试为像我这样迷失的灵魂发布一个官方教程。到那时,请帮助我。 谢谢

EDIT1 @biesior 很抱歉错过了这些细节....现在已经添加到问题中。还。

  1. 我还没有模型。
  2. 我以后可能需要,但现在不需要。
  3. 目前我只想访问现有表。

正如旁注,我能够创建模型并使用 Morphia 对象访问 MongoDB 并执行操作。所以我有基本的想法 但截至目前,我只需要通过播放 java[ 访问现有的 MySQL 数据库=15=]

好吧 Java 我建议 Ebean's SqlQuery API 这样做(也许是因为我更喜欢它 ;))。

project/plugins.sbt中取消注释行(最后一行):

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")

built.sbt 修改行并将 PlayEbean 添加到启用的插件中,例如:

lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)

在您的 conf/application.conf 中,在数据库配置后添加此行:

ebean.default = ["models.*"]

因此您可以使用它,即在您的操作中作为 (sample ofc):

    SqlQuery query = Ebean.createSqlQuery("SELECT * FROM users WHERE username LIKE :username");
    query.setParameter("username", "%200ok%");

    List<SqlRow> rows = query.findList();

    for (SqlRow row : rows) {
        play.Logger.debug("Found user: " + row.getString("username") + " with ID: " + row.getInteger("id"));
    }