org.geotools.data.mysql.MySQLTestSetup.java Source code

Java tutorial

Introduction

Here is the source code for org.geotools.data.mysql.MySQLTestSetup.java

Source

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotools.data.mysql;

import java.sql.Connection;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
import org.geotools.jdbc.JDBCDataStore;
import org.geotools.jdbc.JDBCDataStoreFactory;
import org.geotools.jdbc.JDBCTestSetup;

/**
 * Test harness for mysql.
 *
 * @author Justin Deoliveira, The Open Planning Project
 *
 *
 *
 *
 * @source $URL$
 */
public class MySQLTestSetup extends JDBCTestSetup {

    @Override
    protected void initializeDataSource(BasicDataSource ds, Properties db) {
        super.initializeDataSource(ds, db);

        ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
    }

    @Override
    protected JDBCDataStoreFactory createDataStoreFactory() {
        return new MySQLDataStoreFactory();
    }

    protected void setUpData() throws Exception {
        //drop old data
        try {
            run("DROP TABLE ft1;");
        } catch (Exception e) {
            //e.printStackTrace();
        }

        try {
            run("DROP TABLE ft2;");
        } catch (Exception e) {
            //e.printStackTrace();
        }
        runSafe("DELETE FROM geometry_columns");

        //create some data
        StringBuffer sb = new StringBuffer();
        //JD: COLLATE latin1_general_cs is neccesary to ensure case-sensitive string comparisons
        sb.append("CREATE TABLE ft1 ").append("(id int AUTO_INCREMENT PRIMARY KEY , ")
                .append("geometry POINT, intProperty int, ")
                .append("doubleProperty double, stringProperty varchar(255) COLLATE latin1_general_cs) ENGINE=InnoDB;");
        run(sb.toString());

        sb = new StringBuffer();
        sb.append("INSERT INTO ft1 VALUES (").append("0,GeometryFromText('POINT(0 0)',4326), 0, 0.0,'zero');");
        run(sb.toString());

        sb = new StringBuffer();
        sb.append("INSERT INTO ft1 VALUES (").append("0,GeometryFromText('POINT(1 1)',4326), 1, 1.1,'one');");
        run(sb.toString());

        sb = new StringBuffer();
        sb.append("INSERT INTO ft1 VALUES (").append("0,GeometryFromText('POINT(2 2)',4326), 2, 2.2,'two');");
        run(sb.toString());
    }

    @Override
    protected void setUpDataStore(JDBCDataStore dataStore) {
        dataStore.setDatabaseSchema(null);
    }

    @Override
    protected Properties createExampleFixture() {
        Properties p = new Properties();

        p.put("driver", "com.mysql.jdbc.Driver");
        p.put("url", "jdbc:mysql://localhost/geotools");
        p.put("host", "localhost");
        p.put("port", "3306");
        p.put("user", "geotools");
        p.put("password", "geotools");

        return p;
    }
}