`

Appengine部署JPA

 
阅读更多
Google App Engine and JPAhttp://www.vogella.com/blog/2011/01/10/google-app-engine-jpa/
在google app engine中使用JPA http://www.1zhang.com/group/viewthread.php?tid=5188

1.创建的时候,会自动增加jpa的jar.
2.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.api.jpa.PersistenceProviderImpl</provider>
		<properties>
			<property name="datanucleus.NontransactionalRead" value="true" />
			<property name="datanucleus.NontransactionalWrite" value="true" />
			<property name="datanucleus.ConnectionURL" value="appengine" />
		</properties>
	</persistence-unit>
	<persistence-unit name="eventual-reads-short-deadlines">
		<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" />

			<property name="datanucleus.appengine.datastoreReadConsistency"
				value="EVENTUAL" />
			<property name="javax.persistence.query.timeout" value="5000" />
			<property name="datanucleus.datastoreWriteTimeout" value="10000" />
		</properties>
	</persistence-unit>
</persistence>


3.Pojo
package com.gae.pandy.pojo;

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

@Entity
public class Todo {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long todoId;
	private String summary;

	public String getSummary() {
		return summary;
	}

	public void setSummary(String summary) {
		this.summary = summary;
	}
}


4.service
package com.gae.pandy.service;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
 
public class EMFService {
    private static final EntityManagerFactory emfInstance = Persistence
            .createEntityManagerFactory("transactions-optional");
 
    private EMFService() {
    }
 
    public static EntityManagerFactory get() {
        return emfInstance;
    }
}


5.servlet
package com.gae.pandy.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gae.pandy.pojo.Todo;
import com.gae.pandy.service.EMFService;
 
@SuppressWarnings("serial")
public class PersistsServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        this.doPost(req, resp);
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        Todo todo = new Todo();
 
        todo.setSummary("This is my todo");
 
        EntityManager em = EMFService.get().createEntityManager();
        List<Todo> todos = null;
        try {
            em.persist(todo);//增加到数据库
            Query q = em.createQuery("select t from Todo t");
            todos = new ArrayList(q.getResultList());
        } finally {
            em.close();
        }
 
        resp.setContentType("text/plain");
        if (todos != null) {
            resp.getWriter().println(
                    "Hello, JPA. We have " + todos.size()
                            + " number of entries.");
        } else {
            resp.getWriter().println("Should not happen");
        }
    }
}


6.web.xml
<servlet>
		<servlet-name>PersistsServlet</servlet-name>
		<servlet-class>com.gae.pandy.controller.PersistsServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>PersistsServlet</servlet-name>
		<url-pattern>/PersistsServlet</url-pattern>
	</servlet-mapping>


执行:http://localhost:8888/PersistsServlet




aopalliance-1.0.jar
appengine-api-1.0-sdk-1.7.4.jar
appengine-api-labs.jar
appengine-endpoints.jar
appengine-jsr107cache-1.7.4.jar
apps-marketplace.jar
asm-4.0.jar
commons-logging-1.1.1.jar
datanucleus-api-jdo-3.1.1.jar
datanucleus-api-jpa-3.1.1.jar
datanucleus-appengine-2.1.1.jar
datanucleus-core-3.1.1.jar
geronimo-jpa_2.0_spec-1.0.jar
jdo-api-3.0.1.jar
jsr107cache-1.1.jar
jstl.jar
jta-1.1.jar
junit-3.8.1.jar
spring-aop-3.1.2.RELEASE.jar
spring-asm-3.1.2.RELEASE.jar
spring-beans-3.1.2.RELEASE.jar
spring-context-3.1.2.RELEASE.jar
spring-context-support-3.1.2.RELEASE.jar
spring-core-3.1.2.RELEASE.jar
spring-expression-3.1.2.RELEASE.jar
spring-web-3.1.2.RELEASE.jar
spring-webmvc-3.1.2.RELEASE.jar
standard.jar
分享到:
评论

相关推荐

    google app Engine for java中文api

    - **Java Data Objects (JDO) 和 Java Persistence API (JPA)**:这两种Java持久化标准均被App Engine for Java所支持。通过这些标准,开发者可以方便地将Java对象映射到数据库表中,实现数据的存储和检索。 - **...

    Google App Engine for Java 中文指南

    对于数据存储,App Engine提供了一个可扩展的服务,支持JDO(Java数据对象)2.3和JPA(Java持久化API)1.0接口,这两个接口都是通过DataNucleus访问平台实现的,这是一个开源的标准实现。Memcache服务则提供了一个...

    appengine-todo:使用JPA的App Engine ToDo应用程序

    【标题】"appengine-todo:使用JPA的App Engine ToDo应用程序"是一个基于Java的项目,它利用Google App Engine平台来构建一个待办事项管理应用。Google App Engine是一款云服务,允许开发者部署和运行Web应用程序在...

    Programming Google App Engine with Java-2015年英文原版,0积分

    - **全面性**: 涵盖了使用Google App Engine进行开发的各个方面,包括部署和维护等内容。 - **技术前沿性**: 提供了最新的技术指导,确保读者能够掌握最前沿的技术实践。 #### 二、作者简介 Dan Sanderson是一位...

    Google app engine plugins Eclipse Google 插件 3.3

    项目模板会自动包含必要的框架和配置文件,如 `appengine-web.xml` 和 `web.xml`。 3. **开发环境集成**:Eclipse 插件提供了一个内置的本地服务器,允许你在开发过程中实时预览和测试应用。你可以通过插件的调试...

    云端代码:利用Google.AppEngine编程.源代码

    【Google AppEngine编程详解】 Google App Engine(GAE)是Google提供的一项托管服务,它允许开发者在Google的基础设施上运行自己的应用程序。这个平台基于云计算,为开发者提供了强大的资源,包括服务器、数据库和...

    appengine-java-sdk-1.9.24

    在本例中,我们关注的是专为 Java 开发者设计的 SDK 版本——"appengine-java-sdk-1.9.24"。 **1. GAE 平台** Google App Engine 平台支持多种编程语言,包括 Python、Java 和 Go。它提供了动态扩展性,能够根据...

    初用Google App Engine for Java (org.apache.jasper.JasperExceptio; org.datanucleun)

    3. **appengine-web.xml配置**:这个文件是GAE应用的配置文件,需要正确设置应用ID、版本号、安全限制、线程池大小等参数。 4. **JDO或JPA配置**:根据项目需求选择合适的持久化策略,并在相应的配置文件中指定...

    Google_App_Engine开发环境搭建

    Google Plugin for Eclipse 是一个强大的集成开发环境插件,它使得在Eclipse中开发和部署Google App Engine应用变得异常简便。通过这个插件,开发者可以创建基于Java Servlet API和Google Web Toolkit (GWT)的项目。...

    AppEngine-Java

    5. **Deployment**: 部署到 App Engine 需要创建一个 `appengine-web.xml` 文件,这个文件包含了应用程序的配置信息,如版本号、线程池大小等。部署时,使用 SDK 提供的 `appcfg.sh` 或 `appcfg.cmd` 工具将应用上传...

    gea 整合struts2+jpa+spring实例

    我们需要在`appengine-web.xml`配置文件中启用JPA,并在`persistence.xml`中配置实体管理工厂。接着,定义实体类,使用JPA注解如`@Entity`、`@Id`等,来描述数据库表结构。在业务逻辑中,使用`EntityManager`和`...

    GAESpringSecurityJPA:用于 Google App Engine 的基于 Spring、Spring Security、JPA 的模板

    Google App Engine 是 Google 提供的云计算平台,用于部署和运行 Web 应用。开发者可以在 GAE 上免费或付费使用 Google 的基础设施,包括计算、存储和数据库服务。GAE 支持多种语言,包括 Java,这使得 ...

    bedrock-appengine:为 Google Appengine 定制的 Bedrock 核心基础框架

    **Bedrock-appengine** 框架将这些服务集成到一个统一的框架中,使得开发者可以更专注于业务逻辑,而不是底层的实现细节。 **主要特性**: 1. **依赖注入**:框架集成了依赖注入(Dependency Injection)机制,...

    ud859:使用 Google App Engine 类构建可扩展应用程序的课程代码

    1. **环境设置**:安装和配置Google App Engine SDK,设置开发环境,了解appengine-web.xml和web.xml的配置。 2. **Hello World**:创建第一个App Engine应用,理解Servlet的基本用法。 3. **数据存储**:学习如何...

    tutorial-google-appengine-java:Google App Engine Java 编程教程的支持代码

    部署过程中需要指定应用程序的配置文件appengine-web.xml。 在“CSS”标签中,我们可能涉及到的是如何使用CSS(层叠样式表)来美化GAE Java应用的用户界面。CSS用于定义页面的布局、颜色、字体等视觉元素。你可以...

    spring3+springmvc+jpa2+gae

    标题 "spring3+springmvc+jpa2+gae" 指的是一个集成开发环境,它结合了Spring框架的三个核心组件以及Google App Engine (GAE)。这个项目旨在展示如何在GAE上运行一个基于Spring 3、Spring MVC和JPA 2.0的应用程序。...

    guiatransmetro-gae:用于 GuiaTransmetro 的 Google AppEngine 后端 Java 应用程序

    9. **部署和测试**:开发人员会使用Google AppEngine SDK进行本地开发和测试,然后通过SDK将应用部署到Google云端。 10. **持续集成/持续部署(CI/CD)**:项目可能采用了自动化工具(如Jenkins、Travis CI等)实现...

    GoogleAppEngineServlet:Google App Engine 上的简单 Java Servlet

    在Google App Engine上部署Java Servlet,我们需要遵循以下步骤: 1. **设置开发环境**:安装Google Cloud SDK,这将包含GAE的本地开发服务器。同时,确保已经安装了Java Development Kit (JDK),因为GAE需要Java 8...

    GAE:使用Google App Engine(GAE)的项目-Java和Spring

    Google App Engine(GAE)是一个平台即服务(PaaS)的云环境,允许开发者构建、部署和运行Web应用程序。而Java和Spring的结合则意味着项目可能利用了Spring框架的优势,如依赖注入、AOP、MVC等特性。 **描述解析:*...

Global site tag (gtag.js) - Google Analytics