学习play遇到的问题汇总

本文总结了Play框架中常见的几个问题及其解决方案,包括系统输出中文乱码、项目调试失败、数据库配置、WAR包编译及JPA查询方法等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这些也都是我查资料学来的,只是总结一下。

(1)play在cmd 下,system.out()输出的中文都是乱码

play在cmd 下,system.out()输出的中文都是乱码
chcp 65001 / chcp 936 改变cmd字符集都不行
后在http://www.oschina.net/news/19463/play-framework-1-2-2
解决解决法办。
安装目录下找到
C:\Program Files\play-1.2.3\framework\pym\play 目录下的application.py
修改245行中的java_args.append(‘-Dfile.encoding=utf-8′)为 java_args.append(‘-Dfile.encoding=GBK’)
保存之后重新运行

(2)play新项目调试不了

打开helloworld.launch,找到

<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -Dplay.id= -Dapplication.path  …/>

将-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 去掉。

然后Debug As,即可成功启动调试。附加Play源码后,即可调试Play本身。

(3)配置mysql数据库

首先打开application.conf文件,注释掉原有的test数据库连接。然后添加以下配置。

1 db.url=jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf-8  
2 db.driver=com.mysql.jdbc.Driver  
3 db.user=root  
4 db.pass=root  

(4)play编译,摘录过来的,确实没有测试过。

play war --exclude app/controller:app/models -o /home/zdmcjm/tmp/gift

--exclude把不需要包含的目录写上,这里把源码目录加上,类推,多个目录用:隔开。

打成war包,会将源文件编译到precompiled目录里。当然也可以手动删除源码包。

总算有解决办法了,等下试试
现在公布完整的命令行:

play war YouAppProjectName --exclude app/controller:app/models -o d:/1.war --zip

这样控制器和models全部会被编译成.class

play eclipsify projectname,编译成能够导入eclipsify的项目

(5)play中JPA的查询方法总结

Find by ID: Post aPost = Post.findById(5L); 
Find all: List<Post> posts = Post.findAll(); 
List<Post> posts = Post.all().fetch(); 
List<Post> posts = Post.all().fetch(100);  
List<Post> posts = Post.all().from(50).fetch(100); 
简化查询: 
Post.find("byTitle","My first post").fetch(); 
Post.find("byTitleLike","%hello%").fetch(); 
Post.find("byAuthorIsNull").fetch(); 
Post.find("byTitleLikeAndAuthor","%hello%", connectedUser).fetch(); 
使用 JPQL 查询: 
Post.find(    "select p from Post p, Comment c where c.post = p and c.subject like ?","%hop%"          ); 
Post.find("title","My first post").fetch(); 
Post.find("title like ?","%hello%").fetch(); 
Post.find("author is null").fetch(); 
Post.find("title like % and author is null","%hello%").fetch(); 
Post.find("title like % and author is null order by postDate","%hello%").fetch(); 
Post.find("order by postDate desc").fetch(); 
计算对象个数: 
long postCount = Post.count(); 
long userPostCount = Post.count("author = ?", connectedUser);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值