Play Framework jpa MySQL整合

来源:互联网 发布:mac文本编辑器 编辑:程序博客网 时间:2024/06/10 05:48

最近一个项目用的Struts2,在经过无数遍的重启Tomcat的煎熬后,发现了Play!这个好东东,下来玩了个把钟头。

今天先说说MySQL数据库配置,新建工程后,修改application.conf,测试MySQL配置如下
Java代码  收藏代码
  1. db.url=jdbc:mysql://localhost/数据库名称  
  2. db.driver=com.mysql.jdbc.Driver  
  3. db.user=用户名  
  4. db.pass=密码  

然后配置一下JPA
Java代码  收藏代码
  1. jpa.dialect=org.hibernate.dialect.MySQLDialect  
  2. jpa.debugSQL=true//在控制台里面可以看到生成的SQL语句  


然后写个Model试试。假设数据库中有个数据表table_news,字段C_ID,C_TITLE。新建News类
Java代码  收藏代码
  1. @Entity  
  2. @Table(name = "table_news")  
  3. public class News extends JPASupport {  
  4.     @Id  
  5.     @Column(name="C_ID")  
  6.     private Long cId;  
  7.     @Column(name="C_TITLE")  
  8.     private String cTitle;   
  9.     public String getcTitle() {  
  10.         return cName;  
  11.     }  
  12.     public void setcTitle(String cTitle) {  
  13.         this.cTitle = cTitle;  
  14.     }  
  15.     public Long getId() {  
  16.         return cId;  
  17.     }  
  18.     public void setId(Long id) {  
  19.         cId = id;  
  20.     }  
  21.     public News(Long cId,String cTitle) {  
  22.         this.cId=cId;  
  23.         this.cTitle=cTitle;  
  24.     }  
  25. }  

注意这里和文档例子不同的是不能继承play.db.jpa.Model,而是play.db.jpa.JPASupport,不然
Java代码  收藏代码
  1. @Id  
  2.     @Column(name="C_ID")  
  3.     private Long cId;  
这段代码就不能正确起作用,通过控制台的SQL debug输出可以看到,执行的SQL语句会是select id,C_TITLE而不是select C_ID,C_TITLE。
修改一下Application.java测试一下
Java代码  收藏代码
  1. public class Application extends Controller {  
  2.    public static void index() {  
  3.         List<News> newsList=News.findAll();  
  4.         for(News news:newsList){  
  5.             System.out.println(news.getcTitle());  
  6.         }  
  7.         render();  
  8.     }  
  9. }  
,在控制台里面就可以看到输出了。
0 0