2011-01-04 5 views
0

database(startdb,stopdb,createtable,droptable,startManager)와 연결을 생성하는 내 build.xml 폴더를 만들었습니다.이 코드를 실행하면 Createtable을 눌러 테이블을 만들었지 만 startManager를 시작하면 테이블이 보이지 않습니다 ' t이 존재 ... 누군가가 나에게데이터베이스가

내 build.xml 파일을 도울 수 있다면 :

<property file="build.properties" /> 

    <!-- Global properties for this build. --> 
    <property name="database.dir" value="database" /> 
    <property name="lib.dir" value="lib" /> 

    <!-- Classpath declaration. --> 
    <path id="lib.class.path"> 
     <fileset dir="${lib.dir}"> 
      <include name="**/*.jar" /> 
     </fileset> 
    </path> 

    <!-- Start the HSQL DB server --> 
    <target name="startdb" description="Run HSQL database server with clean DB"> 
     <!-- Delete database files --> 
     <delete dir="${database.dir}" /> 
     <java classname="org.hsqldb.Server" fork="yes" classpathref="lib.class.path" failonerror="true"> 
      <arg value="-database.0" /> 
      <arg value="file:${database.dir}/db" /> 
     </java> 
    </target> 

    <!-- Start the HSQL DB browser tool --> 
    <target name="startManager" description="Start HSQL DB manager"> 
     <java classname="org.hsqldb.util.DatabaseManagerSwing" fork="yes" classpathref="lib.class.path" failonerror="true"> 
      <arg value="-url" /> 
      <arg value="${db.url}" /> 
      <arg value="-driver" /> 
      <arg value="${db.driver}" /> 
     </java> 
    </target> 

    <!-- Stop the HSQL DB server --> 
    <target name="stopdb" description="Stop HSQL database server"> 
     <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> 
      <classpath refid="lib.class.path" /> 
      SHUTDOWN; 
     </sql> 
    </target> 

    <target name="createTables"> 
     <echo message="CREATE TABLES USING: ${db.driver} ${db.url}" /> 
     <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> 
      <classpath refid="lib.class.path" /> 
      CREATE TABLE SALARIATII(
       CNP INTEGER NOT NULL PRIMARY KEY, 
       NUME VARCHAR(40) NOT NULL, 
       SALAR INTEGER NOT NULL, 
       GRADDIDACTIC VARCHAR(256) NOT NULL, 
       DATANASTERII VARCHAR(40) NOT NULL 
      ); 
      </sql> 
    </target> 

    <target name="dropTables"> 
     <echo message="DROP TABLES USING: ${db.driver} ${db.url}" /> 
     <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}" onerror="continue"> 
      DROP TABLE SALARIATII; 
      <classpath refid="lib.class.path" /> 
     </sql> 
    </target> 

    <target name="emptyTables"> 
     <echo message="USING: ${db.driver} ${db.url}" /> 
     <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}"> 
      <classpath refid="lib.class.path" /> 
      DELETE FROM SALARIATII; 
     </sql> 
    </target> 


    <target name="populateTables"> 
     <echo message="USING: ${db.driver} ${db.url}" /> 
     <sql driver="${db.driver}" url="${db.url}" userid="${db.user}" password="${db.pw}"> 
      <classpath refid="lib.class.path" /> 
      INSERT INTO SALARIATII(CNP, NUME,SALAR,GRADDIDACTIC,DATANASTERII) VALUES (1,'FLORIN BOIAN',2500,'PROFESOR', '07/08/1950'); 

     </sql> 

    </target> 

    <target name="all" depends="dropTables,createTables,emptyTables,populateTables" /> 

</project> 
+0

안녕하세요, 귀하의 질문에 적어도 hsqldb 및 개미 태그를 추가해야하고 약간의 제목을 해독하려고 ... :) – LudoMC

+3

또한 JDBC URL을 게시하십시오. 그 안에 ': mem :'이 포함되어 있습니까? –

답변

0

startManager가, 다음, 오른쪽 테이블을 제거해야합니다 전에 droptables이 실행되면? droptables를 실제로 실행하고 싶지 않을 수도 있습니다.

+0

그는 다른 대상을 올바른 순서로 호출하는'all' 대상을 사용합니다. 다른 대상은'dropables'에 의존하지 않으므로 "실수로"실행되지 않습니다. –

+0

우리가 Ant 빌드 파일을 가지고있는 것처럼 의미가 있지만 어떻게 호출하지는 않습니다. 'all' 목표만을 부르니? 각 개별 작업을 응용 프로그램 또는 스크립트에서 호출 할 수 있습니까? 이 경우 David이 말했듯이 테이블을 만들고 채우고 관리자를 표시하기 직전에 'drop'이 호출 된 것일 수 있습니다. 또한, 테이블 전체를'drop'하고'create '할 때'empty'는 필요 없습니다. – LudoMC

관련 문제