Spring mvc 是否可以将mybatis-config.xml转换为SpringMVC的类文件?

Spring mvc 是否可以将mybatis-config.xml转换为SpringMVC的类文件?,spring-mvc,mybatis,spring-mybatis,Spring Mvc,Mybatis,Spring Mybatis,是否可以将mybatis-config.xml(文件类型为xml的sql映射配置)转换为java类文件 我尝试搜索,但只能找到映射器文件的类配置 请通过课堂让我知道这是否真的可行?我不确定我是否理解你的问题,但请尝试以下方法: import org.apache.commons.dbcp.BasicDataSource; import org.apache.ibatis.mapping.Environment; import org.apache.ibatis.session.Configura

是否可以将mybatis-config.xml(文件类型为xml的sql映射配置)转换为java类文件

我尝试搜索,但只能找到映射器文件的类配置


请通过课堂让我知道这是否真的可行?

我不确定我是否理解你的问题,但请尝试以下方法:

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.apache.ibatis.type.TypeAliasRegistry;

public class MyBatisTest {

    private SqlSessionFactory   sqlSessionFactory;
    private Configuration       configuration;
    private SqlSession          sqlSession;

    /**
     * Call this method first
     */
    public void configure() throws Exception {

        DataSource ds = getDataSource();

        Environment env = new Environment("env", new JdbcTransactionFactory(), ds);

        configuration = new Configuration(env);

        configureMappers();

        sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    }

    /**
     * Configure data source
     * @return
     */
    public DataSource getDataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("driver.class.name");
        dataSource.setUrl("jdbc:db_connection_string");
        dataSource.setUsername("usr");
        dataSource.setPassword("pass");
        return dataSource;
    }

    /**
     * Configure all mappers
     */
    private void configureMappers() {

        TypeAliasRegistry aliases = configuration.getTypeAliasRegistry();

        aliases.registerAlias("myBean1Alias", MyBean1.class);

        configuration.addMapper(MyMapper1.class);

        // do the same for all bean and mapper classes

    }

    /**
     * Get SqlSession object
     * @return
     */
    public SqlSession getSession() {
        if (sqlSessionFactory == null) {
            throw Exception("...");
        }
        sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }

    /**
     * Close session
     */
    public void closeSession() {
        if (sqlSession != null) {
            sqlSession.close();
        }
    }

    public static void main(String[] args) {

        MyBatisTest test = new MyBatisTest();

        try {

            test.configure();

            SqlSession session = test.getSession();

            // do work
            MyMapper1 mapper = session.getMapper(MyMapper1.class);
            // etc.

        } catch (Exception e) {
            //
        } finally {
            test.closeSession();
        }

    }

}

我不确定我是否理解你的问题,但试试这个:

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.apache.ibatis.type.TypeAliasRegistry;

public class MyBatisTest {

    private SqlSessionFactory   sqlSessionFactory;
    private Configuration       configuration;
    private SqlSession          sqlSession;

    /**
     * Call this method first
     */
    public void configure() throws Exception {

        DataSource ds = getDataSource();

        Environment env = new Environment("env", new JdbcTransactionFactory(), ds);

        configuration = new Configuration(env);

        configureMappers();

        sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    }

    /**
     * Configure data source
     * @return
     */
    public DataSource getDataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("driver.class.name");
        dataSource.setUrl("jdbc:db_connection_string");
        dataSource.setUsername("usr");
        dataSource.setPassword("pass");
        return dataSource;
    }

    /**
     * Configure all mappers
     */
    private void configureMappers() {

        TypeAliasRegistry aliases = configuration.getTypeAliasRegistry();

        aliases.registerAlias("myBean1Alias", MyBean1.class);

        configuration.addMapper(MyMapper1.class);

        // do the same for all bean and mapper classes

    }

    /**
     * Get SqlSession object
     * @return
     */
    public SqlSession getSession() {
        if (sqlSessionFactory == null) {
            throw Exception("...");
        }
        sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }

    /**
     * Close session
     */
    public void closeSession() {
        if (sqlSession != null) {
            sqlSession.close();
        }
    }

    public static void main(String[] args) {

        MyBatisTest test = new MyBatisTest();

        try {

            test.configure();

            SqlSession session = test.getSession();

            // do work
            MyMapper1 mapper = session.getMapper(MyMapper1.class);
            // etc.

        } catch (Exception e) {
            //
        } finally {
            test.closeSession();
        }

    }

}

如果您将mybatis与spring boot一起使用,请试用,然后您可以在ConfigurationCustomizer中自定义自己的配置,如下所示:

// @Configuration class
@Bean
ConfigurationCustomizer mybatisConfigurationCustomizer() {
    return new ConfigurationCustomizer() {
        @Override
        public void customize(Configuration configuration) {
            // customize ...
        }
    };
}

如果您将mybatis与spring boot一起使用,请试用,然后您可以在ConfigurationCustomizer中自定义自己的配置,如下所示:

// @Configuration class
@Bean
ConfigurationCustomizer mybatisConfigurationCustomizer() {
    return new ConfigurationCustomizer() {
        @Override
        public void customize(Configuration configuration) {
            // customize ...
        }
    };
}

编辑了que-我在使用spring MVC编辑que-我在使用spring MVC