配置 google app 配置 spring. 配置jdo

最开始的时候认为一个 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 .

你可能感兴趣的:(配置 google app 配置 spring. 配置jdo)