【问题标题】:how to insert data into database using play framework and scala如何使用 play framework 和 scala 将数据插入数据库
【发布时间】:2013-05-20 06:12:52
【问题描述】:

嗨,我正在使用播放框架和 scala。 将用户配置文件数据插入数据库不起作用。 登录和注册功能正在运行并且数据库 插入和连接都是正确的。在控制台中成功创建的mysql连接是 可见所以mysql连接没有问题

    the method  inside the application 

    def saveUserProfile = Action { implicit request =>
                if (request.session.get("userId") == None) {
                  Results.Redirect("/")
                } else {


                  val user_account_id = request.session.get("userId").get.toLong
                  val useraccount = UserAccount.findByUserAccountId(user_account_id).get

                  userProfileForm.bindFromRequest.fold(

                    errors => BadRequest(views.html.userProfile(errors, useraccount)),

     the real problem starts Here... when i am debug this program  the next line not executed..
                    userprofile => {

                      val userProfileOpt = UserAccount.userProfile(11)
                      println(userProfileOpt)

                    in here userProfileOpt contain null value.. that is the real problem..
                    that is userProfileOpt=null not contain the id..


                      userProfileOpt match {


                        case None =>

                          val updateduserProfile = UserProfile(NotAssigned,
                              Option(user_account_id), 
                            userprofile.name,
                            userprofile.date_of_birth, userprofile.gender, 
                            userprofile.image,userprofile.status)

                            UserProfile.insert(updateduserProfile)
                          val alert: Alert = new Alert("success", " User Profile Saved")
                          Common.setAlert(alert)


                        case Some(userProfileFound: UserProfile) =>

                          val updatedUserProfile = UserProfile(userProfileFound.id,
                            userProfileFound.user_account_id, userProfileFound.name,
                            userProfileFound.date_of_birth, userProfileFound.gender,
                            userProfileFound.image,userProfileFound.status)

                            UserProfile.update(updatedUserProfile)
                          val alert: Alert = new Alert("success", " User Profile Updated")
                          Common.setAlert(alert)
                      }
                      Results.Redirect("/userProfile")
                    })
                }
              }



and my userProfile form method is inside the application ,

  /**
   * UserProfile Form
   */
  val userProfileForm = Form(
    Forms.mapping(
      "id" -> ignored(NotAssigned: Pk[Long]),
      "user_account_id" ->optional(longNumber),
      "name" -> nonEmptyText,
      "data of birth" -> date,
      "gender" -> nonEmptyText,
      "image" -> nonEmptyText,
      "status" -> nonEmptyText )(UserProfile.apply)(UserProfile.unapply))

  def index = Action {
    val alert: Alert = new Alert("", "")
    Common.setAlert(alert)
    Ok(views.html.index(signInForm, "Friends+"))
      } 

....and the method is under..
this method inside the model and the model name is userprofile.....

 def userProfile(user_account_id:Long)={
    DB.withConnection{ implicit connection =>
    val userDetail = SQL(
    """
        select * from USER_PROFILE
        where USER_ACCOUNT_ID = {user_account_id}
    """).on(
        'user_account_id -> user_account_id).as(UserProfile.simple.singleOpt)  
        userDetail
    }
  }
    ....i am really strugle   this problem with 
     days ...
       i don't know how to handle with this problem..

【问题讨论】:

    标签: mysql scala playframework


    【解决方案1】:

    我有同样的问题,我通过以下方式解决它:

               val userProfileForm = Form(
                Forms.mapping(
                  "id" -> ignored(NotAssigned: Pk[Long]),
                  "user_account_id" -> optional(longNumber),
                  "name" -> nonEmptyText,
    

    问题在这里出生日期的类型是日期,格式在这里:

                  "date_of_birth" -> date("YYYY/MM/dd"),
                  "gender" -> nonEmptyText,
                  "image" -> nonEmptyText,
                  "status" -> nonEmptyText)
                          (UserProfile.apply)(UserProfile.unapply))
                           println("1")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多