Reverse engineer SQL Server 2000 db

Discuss the Schema2XMI tool here.

Reverse engineer SQL Server 2000 db

Postby ecrutchfield » Wed 6. Sep 2006, 03:20

I thought it might be helpful to post the mappings and other configuration stuff I used to get schema2xmi to reverse engineer an xmi file from a SQL Server 2000 database. Of course, this was done using maven v1.

There were 5 steps to generate the xmi file:
1. Generate an AndroMDA project using Maven v1.
2. Add the SQL Mappings file.
3. Modify the project properties.
4. Add dependency to mssql jdbc drivers.
5. Copy the SQL Server JDBC jars to Maven repository.
6. Run schema2xmi.

1. Generate a standard J2EE project. Nothing fancy here.
Code: Select all
maven andromdapp:generate


2. The following should be copied to the file: ${maven.conf.dir}/mappings/MSSQLMappings.xml
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
  This is used to map SQL Types to
  model datatypes for Schema2XMI
-->
<mappings name="MSSQL">
    <mapping>
        <from>DECIMAL</from>
        <to>datatype::Decimal</to>
    </mapping>
    <mapping>
        <from>FLOAT</from>
        <to>datatype::Float</to>
    </mapping>
   <mapping>
      <from>REAL</from>
      <to>datatype::Float</to>
   </mapping>
    <mapping>
        <from>NUMERIC(19,0)</from>
        <to>datatype::Long</to>
    </mapping>

   
   <mapping>
      <from>BIGINT</from>
      <to>datatype::Long</to>
   </mapping>
   <mapping>
      <from>INTEGER</from>
      <to>datatype::Integer</to>
   </mapping>
   <mapping>
      <from>SMALLINT</from>
      <to>datatype::Short</to>
   </mapping>
    <mapping>
        <from>TINYINT</from>
        <to>datatype::Byte</to>
    </mapping>

    <mapping>
        <from>TIMESTAMP</from>
        <to>datatype::Timestamp</to>
    </mapping>
   <mapping>
      <from>BIT</from>
      <to>datatype::Boolean</to>
   </mapping>

   <mapping>
      <from>DATE</from>
      <to>datatype::Date</to>
   </mapping>
   <mapping>
      <from>DATETIME</from>
      <to>datatype::DateTime</to>
   </mapping>

    <mapping>
        <from>VARCHAR</from>
        <to>datatype::String</to>
    </mapping>
   <mapping>
      <from>CHAR</from>
      <to>datatype::Character</to>
   </mapping>

   <mapping>
      <from>LONGVARBINARY</from>
      <to>datatype::Blob</to>
   </mapping>
    <mapping>
        <from>TEXT</from>
        <to>datatype::Clob</to>
    </mapping>
    <mapping>
        <from>IMAGE</from>
        <to>datatype::Blob</to>
    </mapping>

   <mapping>
      <from>UNIQUEIDENTIFIER</from>
      <to>datatype::Guid</to>
   </mapping>
</mappings>


3. Add the following properties to the ${project.home}/mda/project.properties file. Make sure to replace everything in square brackets with your own values.

Code: Select all
# Items related to schema2xmi
maven.andromda.schema2xmi.user=[user name]
maven.andromda.schema2xmi.password=[password]
maven.andromda.schema2xmi.driverClass=com.microsoft.jdbc.sqlserver.SQLServerDriver
maven.andromda.schema2xmi.connectionUrl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=[databasename];SelectMethod=cursor
maven.andromda.schema2xmi.mappingsUri=file:${maven.conf.dir}/mappings/MSSQLMappings.xml
maven.andromda.schema2xmi.classStereotype=Entity
maven.andromda.schema2xmi.identifierStereotypes=Identifier
maven.andromda.schema2xmi.package=[com.package]


4. Add the following dependencies to the ${project.home}/mda/project.xml
Code:

Code: Select all
      <dependency>
         <groupId>com.microsoft.jdbcdriver</groupId>
         <artifactId>msbase</artifactId>
         <version>2000.3</version>
         <jar>msbase.jar</jar>
      </dependency>
      <dependency>
         <groupId>com.microsoft.jdbcdriver</groupId>
         <artifactId>msutil</artifactId>
         <version>2000.3</version>
         <jar>msutil.jar</jar>
      </dependency>
      <dependency>
         <groupId>com.microsoft.jdbcdriver</groupId>
         <artifactId>mssqlserver</artifactId>
         <version>2000.3</version>
         <jar>mssqlserver.jar</jar>
      </dependency>


5. Copy the SQL Server jdbc drivers to {maven1.repository}/com.microsoft.jdbcdriver/jars

6. And finally, run schema2xmi from inside the mda subproject: ${project.home}/mda

Code: Select all
maven andromda:schema2xmi


I hope this helps someone else.

Cheers,
Eric
ecrutchfield
 
Posts: 47
Joined: Sat 21. Jan 2006, 04:19
Location: Roanoke, VA USA

Postby nehagp » Fri 5. Oct 2007, 12:28

I am trying to generate xmi for schema in SQL Server 2005. I added a folder called jdbc/jars in .maven/repository and then copied my sqljdbc.jar to that folder.

Still, I get the following error

[java] java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLSer
verDriver
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

[java] at java.lang.Class.forName0(Native Method)
[java] at java.lang.Class.forName(Class.java:164)
[java] at org.andromda.schema2xmi.SchemaTransformer.transform(SchemaTra
nsformer.java:197)
[java] at org.andromda.schema2xmi.Schema2XMI.main(Schema2XMI.java:276)


Could someone please help?
Thanks!
Neha.
nehagp
 
Posts: 8
Joined: Fri 5. Oct 2007, 11:16

Postby JLANZUELA » Wed 8. Oct 2008, 07:17

I am trying to generate xmi for schema in SQL Server 2005. I added a folder called jdbc/jars in .maven/repository and then copied my sqljdbc.jar to that folder.

Still, I get the following error

[java] java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLSer
verDriver
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

[java] at java.lang.Class.forName0(Native Method)
[java] at java.lang.Class.forName(Class.java:164)
[java] at org.andromda.schema2xmi.SchemaTransformer.transform(SchemaTra
nsformer.java:197)
[java] at org.andromda.schema2xmi.Schema2XMI.main(Schema2XMI.java:276)


Could someone please help?
Thanks!
Neha.



nehagp, I have the same problem. You solved it?

thxxxsss
JLANZUELA
 
Posts: 5
Joined: Thu 17. Jan 2008, 10:42


Return to Schema2XMI

Who is online

Users browsing this forum: No registered users and 0 guests