testtiming.java
来自「OR Mapping工具」· Java 代码 · 共 85 行
JAVA
85 行
package org.ephman.junit;import junit.framework.TestCase;import org.ephman.abra.database.*;import org.ephman.junit.generated.*;import org.ephman.abra.tools.FactoryGenerator;import java.sql.*;/** a test to try timing in stored procs and dyn sql for dbs.. * @author Paul Bethe */public class TestTiming extends DatabaseTest { public TestTiming (String name) { super (name); } protected void setUp () throws Exception { System.out.println ("Setup TestTiming"); super.setUp (); } public void testTiming () throws Throwable { // createBadBook (); cleanAuthors (); doTiming (AuthorFactory.getInstance (), false); if (FactoryGenerator.DB_NAME.equals ("MySQL")) { System.out.println ("MySql does not support stored procs"); } else if (FactoryGenerator.DB_NAME.equals("Sybase")) { System.out.println ("Sybase procs not supported"); } else if (FactoryGenerator.DB_NAME.equals("SQLServer")) { System.out.println ("SQLServer procs not supported"); } else doTiming (AuthorProcsFactory.getInstance (), true); } void createBadBook () throws Throwable { dbSess.startTransaction (); AuthorFactory.getInstance ().delete (dbSess, new Author () ); dbSess.commitTransaction (); } // time w/ rpocs and w/o procs void doTiming (AbstractAuthorFactory aFact, boolean isProcs) throws Throwable { long start = System.currentTimeMillis (); for (int i =0; i < RUNS; i++) { dbSess.startTransaction (); Author a = createAuthor (i, isProcs); aFact.store (dbSess, a); dbSess.commitTransaction (); } long end = System.currentTimeMillis (); double avgTime = (end-start) / RUNS; System.out.println ("Succesful storage " + (isProcs ? "w/ stored procs" : "dyn SQL")); System.out.println ("\taverage time: " + avgTime + "(ms) [" + (end-start) + " for " + RUNS + " stores]"); } Author createAuthor (int num, boolean isProcs) { Author result = new Author (); result.setLastName (TIMING + num + (isProcs?"p":"")); result.setFirstName ("Bob"); return result; } void cleanAuthors () throws Throwable { super.execute ("delete from db_author where " + AuthorFactory.getInstance ().lastName + " like '" + TIMING + "%'"); } static final int RUNS = 100; static final String TIMING = "timing"; // disconnect from db.. protected void tearDown () throws Exception { super.tearDown (); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?