基于flex4技术从零开发flex博客系统:7 Using JPA

App engine java在数据存储方面不仅支持JDO,还支持JPA。第4,5课我们存储数据使用的是JDO,这一课看一下如果使用JPA。

一,Using JPA

打开gapp_flexblog项目,在src/META-INF/目录下,添加persistence.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
    <persistence-unit name="transactions-optional">
        <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider>
        <properties>
            <property name="datanucleus.NontransactionalRead" value="true"/>
            <property name="datanucleus.NontransactionalWrite" value="true"/>
            <property name="datanucleus.ConnectionURL" value="appengine"/>
        </properties>
    </persistence-unit>
</persistence>

其中persistence-unit的name在实例化EntityManagerFactory时会用到。

在sban.flexblog.managers目录下,添加类EMFactory:

package sban.flexblog.managers;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public final class EMFactory {
        private static EntityManagerFactory _instance = Persistence
                        .createEntityManagerFactory("transactions-optional");

        private EMFactory() {
        }

        public static EntityManagerFactory getInstance() {
                return _instance;
        }

}

该类用于返回EntityManagerFactory一个实例,其中参数”transactions-optional”为上文中定义。

在sban.flexblog目录下添加实体类GreetingEntity:

package sban.flexblog;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class GreetingEntity {

        public GreetingEntity(String user, String content, Date date)
        {
                this.user = user;
                this.greetingContent=content;
                this.date = date;
        }

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;

        private String user;

        private String greetingContent;

        private Date date;

        public Long getId()
        {
                return this.id;
        }

        public String getGreetingContent()
        {
                return this.greetingContent;
        }

        public void setGreetingContent(String v)
        {
                this.greetingContent = v;
        }

        public Date getDate()
        {
                return this.date;
        }
}

时间: 2024-12-10 10:00:56

基于flex4技术从零开发flex博客系统:7 Using JPA的相关文章

基于flex4技术从零开发flex博客系统:8 using jsp and jstl

一,using jsp App Engine java提供对JSP,JSTL的几乎完全支持.本课主要介绍如何在GAE for java中使用jsp及jstl. 打开eclipse菜单->Preferences->Java->Installed JREs,添加jdk安装目录,并设为默认.默认eclipse仅指向了jre目录. 开发flex博客系统:8 using jsp and jstl-jsp 页面引入 jstl">打开gapp_flexblog项目,在war目录下添加j

基于flex4技术从零开发flex博客系统:1 开发环境配置与hello world

一,如何学好flex 学习技术,最好的方法莫过于边学边用,一边阅读官方文档,一边在项目中实践.但是官方文档太过乏味:若是没人带,从头做项目又不知从何下手.若是有这么一个人,从他最初学习到最后学有所成,这个过程一一被记录下来,别人沿着他这个轨迹学习,一定会更容易入门. 对于初学者,学习内容若太难了,不易理解:若太容易了,又丧失了学习的兴趣与动力.cookbook居说很好,例子很丰富,无论什么问题都能找到答案.但CookBook只是只是针对简单.单一问题的解答集合,很松散,问题与问题之间没有联系,解

基于flex4技术从零开发flex博客系统:4 数据存储

通过前三课我艰苦卓绝的努力,客户端与服务端通讯已经没有问题了.这对于一个没有学过flex4,没有用过java的初学者,已经相当不容易了.到目前为止,开发博客系统的准备工作,已经仅剩最后一项了:数据存储. Google App Engine没有数据库的概念,不过app engine提供了JDO存储接口,google充许开发者直接定义.存储.查询.修改实体(entity). 一,数据定义 我在sban.flexblog package下添加一个名为Greeting的实体类,这个一个POJO(Plai

基于flex4技术从零开发flex博客系统:6 Using FluorineFx

Google app engine虽好,既支持python,又支持java,将来可能还会支持.net,php等语言.但是我不敢把宝全部押在GAE上,如果哪一天appspot.com被屏了,我等开发也就歇菜了.为此,我计划让我的flexblog支持.net与php.今天就看一下如何用.net搭建一个remoting server. 一,.Net+FluorineFx开发环境搭建 我在GAE中用了WebORB for java做了remoting框架, 但是对于.net,我并不打算用WebORB f

基于flex4技术从零开发flex博客系统:3 使用Remoting服务

在flex中有多种对象可用于与server交互,有URLLoader.HttpService.WebService.RemotingObject.Socket,NetConnection等: 1,URLLoader与HttpService多种于加载静态文本文件. 2,WebService基于soap协议,效率虽不及Remoting,但可移植性好,与平台.语言完全解藕. 3,Remoting采用amf通讯协议,通讯效率被认为是WebServive的10倍.目前已有多种成熟的服务端框架可供选用,.N

基于flex4技术从零开发flex博客系统:2 与servlet服务端交互

上一节课,我们讲了如何配置开发环境,包括客房端flex开发环境,以及服务端java开发环境,并且编写了一个客房端示例程序helloworld,但遗憾的是,目前这一个helloworld不是动态的.如果客户端不能与服务端进行数据交互,那么我感觉我的flex还没有真正入门. 一,Google App项目目录结构及配置说明 我审视了一下eclipse为我创建的gapp_flexblog项目,它包括以下目录结构: Guestbook/ src/ -Java source code- META-INF/

基于flex4技术从零开发flex博客系统:5 数据存储之管理Greeting

Google App Engine for java自今年4月7日开放申请,至今不足二十日,但关于GAE for java的博文已经出现了不少.继数据存储之后,这一课要研究如何通过客户端管理Greeting,即CURD的实现. 一,列表显示 在sban.flexblog.HelloWorld.java中添加一个获取所有Greeting的接口: public List<Greeting> getAllGreetings() { List<Greeting> result; try {

MVC3开发校园博客系统

问题描述 小弟因为要用MVC3来开发一个校园博客系统,对MVC不太熟悉,希望能得到前辈们的指导,小弟感激不尽,例如用库模式和依赖注入等技术来实现,实现例如网上的博客功能等,希望得到指导,小弟找了好到资料,都找不到合适,希望helpme 解决方案 解决方案二:MSWEBCAST提供了MVC视屏教程可去下载来看看

Django完整的开发一个博客系统

今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: PyCharm 2016.1 功能篇 既然是博客系统,发布的自然是博客了.让我们想想,一篇博客有什么属性.所以我们要有能添加博客,删除博客,修改博客,以及给博客发评论,贴标签,划分类等功能. 关系分析 属性 博客:标题,内容. 标签:标签名 分类:分类的名称 评论:评论人,评论人email,评论内容 关