您的位置:首页 > 数据库 > MySQL

Play Framework jpa MySQL整合

2015-11-06 16:30 453 查看
最近一个项目用的Struts2,在经过无数遍的重启Tomcat的煎熬后,发现了Play!这个好东东,下来玩了个把钟头。

今天先说说MySQL数据库配置,新建工程后,修改application.conf,测试MySQL配置如下

Java代码


db.url=jdbc:mysql://localhost/数据库名称
db.driver=com.mysql.jdbc.Driver
db.user=用户名
db.pass=密码

然后配置一下JPA

Java代码


jpa.dialect=org.hibernate.dialect.MySQLDialect
jpa.debugSQL=true//在控制台里面可以看到生成的SQL语句

然后写个Model试试。假设数据库中有个数据表table_news,字段C_ID,C_TITLE。新建News类

Java代码


@Entity
@Table(name = "table_news")
public class News extends JPASupport {
@Id
@Column(name="C_ID")
private Long cId;
@Column(name="C_TITLE")
private String cTitle;
public String getcTitle() {
return cName;
}
public void setcTitle(String cTitle) {
this.cTitle = cTitle;
}
public Long getId() {
return cId;
}
public void setId(Long id) {
cId = id;
}
public News(Long cId,String cTitle) {
this.cId=cId;
this.cTitle=cTitle;
}
}

注意这里和文档例子不同的是不能继承play.db.jpa.Model,而是play.db.jpa.JPASupport,不然

Java代码


@Id
@Column(name="C_ID")
private Long cId;

这段代码就不能正确起作用,通过控制台的SQL debug输出可以看到,执行的SQL语句会是select id,C_TITLE而不是select C_ID,C_TITLE。

修改一下Application.java测试一下

Java代码


public class Application extends Controller {
public static void index() {
List<News> newsList=News.findAll();
for(News news:newsList){
System.out.println(news.getcTitle());
}
render();
}
}

,在控制台里面就可以看到输出了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: