⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 根据Scott W. Ambler在1998年写的关于ORM Persistence Layer的详细设计论文的设计思路,Artem Rudoy 开发了一个开源的ORM实现 -- PL(Persist
💻 JAVA
字号:
package pl.test;

import java.sql.*;
import javax.xml.parsers.*;

import pl.*;
import pl.criteria.*;
import pl.xml.*;

/**
 * Insert the type's description here.
 *
 * @author: Artem Rudoy
 */
public class Test {
    /**
     * Constructor.
     */
    public Test()
    {
        super();
    }

    /**
     * Main method.
     *
     * @param args
     */
    public static void main(String[] args)
    {
        Test test = new Test();
        test.performTest();
    }

    /**
     * Test method.
     */
    public void performTest()
    {
        try
        {
            PersistenceBroker.getInstance().setDebug(true);
            PersistenceBroker.getInstance().init();

            // String dir = "D:\\Users\\Artyom\\Projects\\PersistenceLayer\\Test\\";
            //String dir = "D:\\temp\\pl\\test\\";
            String dir = "D:\\ShareProject\\PersisterLayer\\test\\";
            // Load database
            //PersistenceBroker.getInstance().loadConfig(new XMLConfigLoader(dir + "oracleTest.xml"));
            //PersistenceBroker.getInstance().loadConfig(new XMLConfigLoader(dir + "cloudscapeTest.xml"));
            //PersistenceBroker.getInstance().loadConfig(new XMLConfigLoader(dir + "postgresqlTest.xml"));
            PersistenceBroker.getInstance().loadConfig(new XMLConfigLoader(dir + "mySqlTest.xml"));
            // Load database schema
            PersistenceBroker.getInstance().loadConfig(new XMLConfigLoader(dir + "schema.xml"));

            RetrieveCriteria criteria1 = new RetrieveCriteria(Person.class);
            criteria1.getWhereCondition().addAndCriteria(criteria1.getGreaterThanCriteria("id"));
            java.util.Vector parameters1 = new java.util.Vector();
            parameters1.add(new Long(2));
            Cursor result1 = criteria1.perform(parameters1);
            result1 = criteria1.perform(parameters1);
            while (result1.next()) {
               System.out.println(" person"+((Person)result1.getObject()).getName());
           }
           result1.close();


            // Single simple object test
            System.out.println("---Single simple object test and transaction test");
            PersistentTransaction pt = new PersistentTransaction();
            Person person = new Person();
            person.setName("Test person 1");
            // Insert object
            pt.saveObject(person);
            // Update object
            person.setName("Test person 2");
            pt.saveObject(person);
            // Retrieve object
            pt.retrieveObject(person);
            // Lock object
            pt.lockObject(person);
            // Delete object
            pt.deleteObject(person);
            pt.commit();
            System.out.println();

            // Single object test with inheritance
            System.out.println("---Single object test with inheritance");
            Manager manager = new Manager();
            manager.setName("Test manager 1");
            manager.setDepartment("Test department 1");
            // Insert object
            manager.save();
            // Update object
            manager.setName("Test manager 2");
            manager.setDepartment("Test department 2");
            manager.save();
            // Retrieve object
            manager.retrieve();
            // Delete object
            manager.delete();
            System.out.println();

            // Test for association support
            System.out.println("---Test for association support");
            Employee employee = new Employee();
            employee.setName("Test epmloyee");
            Position position = new Position();
            position.setName("Test position");
            employee.setPosition(position);
            Task task = new Task();
            task.setName("Test task 1");
            employee.getTasks().add(task);
            task = new Task();
            task.setName("Test task 2");
            employee.getTasks().add(task);
            task = new Task();
            task.setName("Test task 3");
            employee.getTasks().add(task);
            // Insert objects
            employee.save();
            // Update objects
            employee.save();
            // Retrieve obects
            employee.retrieve();
            // Retrieve tasks only
            employee.retrieveAssociation("tasks", null);
            // Delete objects
            employee.delete();
            System.out.println();

            // Empty criteria test
            System.out.println("---Empty criteria test");
            RetrieveCriteria criteria = new RetrieveCriteria(Employee.class);
            Cursor result = criteria.perform(new java.util.Vector());
            while(result.next())
            {
                System.out.println("Name: " + ((Employee)result.getObject()).getName() + "; position: " +((Employee)result.getObject()).getPosition().getName());
            }
            result.close();
            System.out.println();

            // Simple criteria test
            System.out.println("---Simple criteria test");
            criteria = new RetrieveCriteria(Employee.class);
            criteria.getWhereCondition().addOrCriteria(criteria.getEqualToCriteria("name"));
            criteria.getWhereCondition().addOrCriteria(criteria.getEqualToCriteria("name"));
            java.util.Vector parameters = new java.util.Vector();
            parameters.add("Mary");
            parameters.add("John");
            result = criteria.perform(parameters);
            while(result.next())
            {
                System.out.println(((Employee)result.getObject()).getName());
            }
            result.close();
            System.out.println();

            // Simple criteria test 2
            System.out.println("---Simple criteria test 2");
            criteria = new RetrieveCriteria(Employee.class);
            criteria.getWhereCondition().addAndCriteria(criteria.getGreaterThanCriteria("id"));
            parameters.add(new Long(2));
            result = criteria.perform(parameters);
            while(result.next())
            {
                System.out.println(((Employee)result.getObject()).getName());
            }
            result.close();
            System.out.println();

            // Complex criteria test
            System.out.println("---Complex criteria test");
            criteria = new RetrieveCriteria(Employee.class);
            criteria.getWhereCondition().addAndCriteria(criteria.getEqualToCriteria("position.name"));
            parameters = new java.util.Vector();
            parameters.add("Software developer");
            CriteriaCondition orCondition = criteria.getNewCondition();
            orCondition.addOrCriteria(criteria.getEqualToCriteria("name"));
            orCondition.addOrCriteria(criteria.getEqualToCriteria("name"));
            criteria.getWhereCondition().addAndCriteria(orCondition);
            parameters.add("John");
            parameters.add("Mary");
            result = criteria.perform(parameters);
            while(result.next())
            {
                System.out.println(((Employee)result.getObject()).getName());
            }
            result.close();
            System.out.println();

            // Optimistic lock test
            System.out.println("---Optimistic lock test");
            manager = new Manager();
            manager.setName("Test manager 1");
            manager.setDepartment("Test department 1");
            // Insert object
            manager.save();
            System.out.println("Before lock: " + manager.getTimestamp());
            manager.lock();
            System.out.println("After lock: " + manager.getTimestamp());
            manager.retrieve();
            System.out.println("After retrieve: " + manager.getTimestamp());
            manager.setName("Test manager 2");
            manager.save();
            System.out.println("After update: " + manager.getTimestamp());
            manager.delete();
            System.out.println();

            // Proxy object test
            System.out.println("---Proxy object test");
            position = new Position();
            position.setId(new Long(21));
            position.retrieveAsProxy();
            System.out.println(position.isProxy());
            System.out.println(position.getName());
            position.retrieve();
            System.out.println(position.isProxy());
            System.out.println(position.getName());
            System.out.println();

            // Proxy object creteria test
            System.out.println("---Proxy object criteria test");
            criteria = new RetrieveCriteria(Position.class);
            result = criteria.performForProxies(new java.util.Vector());
            while(result.hasMoreElements())
            {
                Position pos = (Position)result.getObject();
                System.out.println(pos.isProxy()  + "; " + pos.getName());
            }

            // XML marshalling test
            System.out.println("---XML marshalling test");
            Marshaller marshaller = new Marshaller();
            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            org.w3c.dom.Document doc = db.newDocument();
            employee = new Employee();
            employee.setId(new Long(3));
            employee.retrieve();
            marshaller.marshall(employee, doc, doc);
            java.io.PrintWriter pw = new java.io.PrintWriter(System.out);
            ((org.apache.crimson.tree.XmlWritable)doc).writeXml(new org.apache.crimson.tree.XmlWriteContext(pw));
            pw.flush();
            System.out.println();
            System.out.println("---Test for namespace support");
            marshaller = new Marshaller("aaa/bbb/ccc", "aaa");
            doc = db.newDocument();
            marshaller.marshall(employee, doc, doc);
            ((org.apache.crimson.tree.XmlWritable)doc).writeXml(new org.apache.crimson.tree.XmlWriteContext(pw));
            pw.flush();
            System.out.println("---Test for default namespace support");
            marshaller = new Marshaller("aaa/bbb/ccc", "");
            doc = db.newDocument();
            marshaller.marshall(employee, doc, doc);
            ((org.apache.crimson.tree.XmlWritable)doc).writeXml(new org.apache.crimson.tree.XmlWriteContext(pw));
            pw.flush();
        }
        catch (Throwable e)
        {
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -