mongoDb 2

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>selenium</groupId>
    <artifactId>selenium</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>sunfan Maven Webapp</name>


    <properties>
        <spring-version>4.0.5.RELEASE</spring-version>
        <spring-integration-version>4.0.0.RELEASE</spring-integration-version>
        <spring.mongo.version>1.3.3.RELEASE</spring.mongo.version>
        <javamail.version>1.4.5</javamail.version>
    </properties>
    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!-- Spring Framework - Core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring-version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring-version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.4</version>
        </dependency>
        <!-- pnr -->
        <dependency>
            <groupId>com.travelsky</groupId>
            <artifactId>ibeclient</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
        </dependency>
        <dependency>
            <groupId>com.travelsky</groupId>
            <artifactId>unibizibe</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.travelsky</groupId>
            <artifactId>uniframework</artifactId>
            <version>0.0.1</version>
        </dependency>
        <!-- pnr -->
        <!-- Spring Framework - Integration -->
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-core</artifactId>
            <version>${spring-integration-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-ws</artifactId>
            <version>${spring-integration-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-mongodb</artifactId>
            <version>${spring-integration-version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.0.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>1.5.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>6</version>
        </dependency>
        <!-- jdbc driver -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.44.0</version>
    </dependency>

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>${javamail.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>

    </dependencies>

    <build>

        <finalName>selenium</finalName>

        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.10.v20130312</version>
                <configuration>
                    <webAppConfig>
                        <contextPath>/${project.artifactId}</contextPath>
                    </webAppConfig>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>

    </build>

</project>

 

 

 MongoTemplateConfig 

package com.travelsky.autotest.config.spring;

import java.net.UnknownHostException;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.authentication.UserCredentials;
import org.springframework.data.mongodb.core.MongoTemplate;

import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.travelsky.autotest.dao.datasource.builder.mongo.AutoTest_DefaultDB;
import com.travelsky.autotest.dao.entity.DataSource;

@Configuration
public class MongoTemplateConfig {
    
    @Bean public MongoTemplate autoTestClient() {
        DataSource ds = new AutoTest_DefaultDB().build(new DataSource());
        Mongo mongo = null;
        try {
            mongo = new MongoClient(ds.getIp(),ds.getPort());
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
        UserCredentials userCredentials = new UserCredentials(ds.getUsername(), ds.getPassword());
        return new MongoTemplate(mongo, ds.getDatabaseName(), userCredentials);
    }
    
}

 

MongoDao

package com.travelsky.autotest.dao.table;

import java.net.UnknownHostException;
import java.util.List;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

public abstract class MongoDao<E> {

    
    abstract MongoTemplate getMongoTemplate() throws UnknownHostException;
        
    /**
     * 插入测试用例
     * 
     * @param o obj
     * @throws UnknownHostException
     */
    public void insert(Object o) throws UnknownHostException {
        getMongoTemplate().insert(o, getCollections());
    }

    /**
     * 读取测试数据
     * 
     * @throws UnknownHostException 
     */
    @SuppressWarnings("unchecked")
    public List<E> queryAll() throws UnknownHostException {
        return getMongoTemplate().findAll(getClazz());
    }
    
    
    /**
     * 读取数据按criteria规则
     * @param criteria 规则
     * @return
     * @throws UnknownHostException
     */
    @SuppressWarnings("unchecked")
    public List<E> query(Criteria criteria) throws UnknownHostException {
        return getMongoTemplate().find(new Query(criteria), getClazz());
    }
    
    /**
     * 条件查询,相当于 where key = value
     * @param key
     * @param value
     * @return
     * @throws UnknownHostException
     */
    public List<E> query(String key,String value) throws UnknownHostException {
        return query(Criteria.where(key).is(value));
    }
    
    /**
     * 注意这个方法只会覆盖所有匹配到的数据
     * @param criteria 查询条件
     * @param updateKey 定位更新的键
     * @param updateValue 更新的内容
     * @throws UnknownHostException
     */
    public void queryAndUpdate(Criteria criteria,String updateKey, Object updateValue) throws UnknownHostException {
         getMongoTemplate().updateMulti(new Query(criteria), Update.update(updateKey, updateValue),  getClazz());
    }
    
    /**
     * 注意这个方法只会覆盖所有匹配到的数据
     * @param key 定位查询的主键
     * @param value 定位查询的内容
     * @param updateKey 定位更新的KEY
     * @param updateValue 更新的内容
     * @throws UnknownHostException
     */
    public void queryAndUpdate(String key,String value,String updateKey, Object updateValue) throws UnknownHostException {
         getMongoTemplate().updateMulti(new Query(Criteria.where(key).is(value)), Update.update(updateKey, updateValue),  getClazz());
    }
    
    /**
     * 删除匹配到的数据  
     * @param key 定位删除的键
     * @param value 定位查询的内容
     * @throws UnknownHostException
     */
    public void removeAll(String key,String value) throws UnknownHostException {
         getMongoTemplate().remove(new Query(Criteria.where(key).is(value)),  getClazz());
    }
    
    /**
     * 定位删除的内容
     * @param criteria 定位删除的内容
     * @throws UnknownHostException
     */
    public void removeAll(Criteria criteria) throws UnknownHostException {
         getMongoTemplate().remove(new Query(criteria),  getClazz());
    }

    abstract String getCollections();

    @SuppressWarnings("rawtypes")
    abstract Class getClazz();
    

}

TestCaseDao

package com.travelsky.autotest.dao.table;



import java.net.UnknownHostException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;

import com.travelsky.autotest.dao.entity.TestCase;
@Component
public class TestCaseDao<E> extends MongoDao<E>{

    @Autowired @Qualifier("autoTestClient")MongoTemplate autoTestClient;

    @Override
    String getCollections() {
        return "testCase";
    }

    @SuppressWarnings("rawtypes")
    @Override
    Class getClazz() {
        return TestCase.class;
    }

    @Override
    MongoTemplate getMongoTemplate() throws UnknownHostException {
        return autoTestClient;
    }

    

}

 

AutoTest_DefaultDB

package com.travelsky.autotest.dao.datasource.builder.mongo;

import com.travelsky.autotest.dao.config.DataBaseConfig;
import com.travelsky.autotest.dao.datasource.builder.Builder;
import com.travelsky.autotest.dao.entity.DataSource;

public class AutoTest_DefaultDB implements Builder{
    
    @Override
    public DataSource build(DataSource dataSource) {
        dataSource.setIp(DataBaseConfig.MONGO_DB_IP);
        dataSource.setPort(DataBaseConfig.MONGO_DB_PORT);
        dataSource.setDatabaseName(DataBaseConfig.MONGO_DB_DATABASENAME);
        dataSource.setUsername(DataBaseConfig.MONGO_DB_USERNAME);
        dataSource.setPassword(DataBaseConfig.MONGO_DB_PASSWORD);
        return dataSource;
    }
    
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。