ex8_31.txt
来自「j2ee core design patterns」· 文本 代码 · 共 63 行
TXT
63 行
Example 8.31 QueriesImpl Class
// QueryImpl.java
package com.corej2eepatterns.business.impl;
import com.corej2eepatterns.business.hr.Department;
import com.corej2eepatterns.business.hr.Employee;
import com.corej2eepatterns.business.hr.Project;
import com.corej2eepatterns.business.hr.Queries;
import javax.jdo.Query;
import javax.jdo.PersistenceManager;
import java.util.Collection;
import java.util.Iterator;
/**
* @author Craig Russell
*/
public class QueriesImpl implements Queries {
private FactoryImpl factory;
/** Creates a new instance of QueryImpl */
public QueriesImpl(FactoryImpl factory) {
this.factory = factory;
}
public Department getDepartment(String name) {
PersistenceManager pm =
factory.getPersistenceManager();
Query q = pm.newQuery(
DepartmentImpl.class, "this.name == name");
q.declareParameters("String name");
Collection departments = (Collection) q.execute(name);
Iterator iterator = departments.iterator();
return (iterator.hasNext()) ?
(Department) iterator.next() : null;
}
public Employee getEmployee(long id) {
PersistenceManager pm =
factory.getPersistenceManager();
Query q = pm.newQuery(
EmployeeImpl.class, "this.id == id");
q.declareParameters("long id");
Collection employees =
(Collection) q.execute(new Long(id));
Iterator iterator = employees.iterator();
return (iterator.hasNext()) ?
(Employee) iterator.next() : null;
}
public Project getProject(String name) {
PersistenceManager pm =
factory.getPersistenceManager();
Query q = pm.newQuery(
ProjectImpl.class, "this.name == name");
q.declareParameters("String name");
Collection projects = (Collection) q.execute(name);
Iterator iterator = projects.iterator();
return (iterator.hasNext()) ?
(Project) iterator.next() : null;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?