这些也都是我查资料学来的,只是总结一下。
(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);