您的位置:首页 > 移动开发

配置 google app 配置 spring. 配置jdo

2014-11-14 00:00 344 查看
最开始的时候认为一个 app的程序 并不需要弄的太复杂.

mvc 上面就添加了一个 struts2 .就想直接做开发了.

但是最近 想学习 下 flex 的功能.

开始 研究 BlazeDS. 用spring 进行配置还是很方便的.

所以想把 spring 添加 到 app 上面..

大体上面 用 jdo + spring + BlazeDS 的方式去开发一个简单的 CRUD.

看了下 因为 用BlazeDS 可以使用AMF3( action Message Format )

AMF 是远程访问调用 RemoteObject的方式. 使用的是二进制.效率开发上面比 http 好点.

需要的jar 文件就两个.

spring2.0.6.jar
commons-logging-1.0.4.jar

因为没有用 hibernate的原因吧.其实这个spring的jar 如果就要IOC的可以下载一个小点的包.

然后启动.

成功.修改 配置文件.

<bean id="pmf"
class="org.springframework.orm.jdo.LocalPersistenceManagerFactoryBean">
<property name="jdoProperties">
<props>
<prop key="javax.jdo.PersistenceManagerFactoryClass">org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory</prop>
<prop key="javax.jdo.option.ConnectionURL">appengine</prop>
<prop key="javax.jdo.option.NontransactionalRead">true</prop>
<prop key="javax.jdo.option.NontransactionalWrite">true</prop>
<prop key="javax.jdo.option.RetainValues">true</prop>
<prop key="datanucleus.appengine.autoCreateDatastoreTxns">true</prop>
</props>
</property>
</bean>


添加一个spring的配置文件.

然后编写dao.

/**
* 保存数据.
*/
public String saveSystemUser(SystemUser systemUser) {
String isSuccess = "true";
PersistenceManager pm = getPersistenceManager();
try {
if (systemUser.getId() == null) {
systemUser.setCreateDate(new Date());
pm.makePersistent(systemUser);
} else {
SystemUser tempSystemUser = pm.getObjectById(SystemUser.class,
systemUser.getId());
tempSystemUser.setLoginName(systemUser.getLoginName());
tempSystemUser.setPasswd(systemUser.getPasswd());
tempSystemUser.setName(systemUser.getName());
tempSystemUser.setPhone(systemUser.getPhone());
tempSystemUser.setEmail(systemUser.getEmail());
tempSystemUser.setIslock(systemUser.getIslock());
tempSystemUser.setLoginTimes(systemUser.getLoginTimes());
tempSystemUser.setLastLogin(systemUser.getLastLogin());
pm.makePersistent(tempSystemUser);
}
Query query = pm.newQuery("select count(id) from "
+ SystemUser.class.getName());
/** 强制转换成int */
System.out.println(Integer.parseInt(query.execute("Smith").toString()));
} catch (Exception e) {
isSuccess = "false";
e.printStackTrace();
} finally {
pm.close();
}
return "{success:\"" + isSuccess + "\"}";
}

<bean id="systemUserDAO" class="com.freewebsys.dao.SystemUserDAO">
<property name="persistenceManagerFactory">
<ref bean="pmf" />
</property>
</bean>

配置 dao xml.

发现 在使用 dao的是 还是不可以 直接用 多个.getJdoTemplate()

在使用的时候 就报链接 被关闭.在每一个dao的方法里面 还是要自己去关闭链接.打开链接.

其实有的时候应该把 这个 jdo 换成 jpa 就好了.反正 google 两个都是支持的.

用jpa的应该比较多吧.

保存一个类.同时查询下数据库里面有多少条数据.

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="org.springframework.context.ApplicationContext"%>
<%@page
import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="com.freewebsys.dao.SystemUserDAO"%>
<%@page import="com.freewebsys.jdo.SystemUser"%>
<%@page import="java.util.Date"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
ApplicationContext applicationContext = WebApplicationContextUtils
.getWebApplicationContext(session.getServletContext());
System.out.println("applicationContext:" + applicationContext);
System.out.println("pmf:" + applicationContext.getBean("pmf"));
SystemUserDAO systemUserDAO = (SystemUserDAO) applicationContext
.getBean("systemUserDAO");//得到spring的dao.
SystemUser systemUser = new SystemUser();
systemUser.setCreateDate(new Date());
systemUser.setLoginName("123456");
systemUser.setPasswd("1223");
systemUserDAO.saveSystemUser(systemUser);//执行保存.
%>
test success.
</body>
</html>


直接在页面上写一个测试.

数据插入成功.并且可以查询到总数.OK.

下面就是使用flex 结合 BlazeDS

附件是 几个类. 配置文件.和 jar .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: