2020-02-15

9017 ワード

庚子ネズミ年戊寅月戊子日
説明
spring-mybatis文書は読みます。http://mybatis.org/spring/zh/index.html
spring-mybatis xml配置
spring-mybatis java配置
技術まとめ:spring-mybaits配置https://blog.csdn.net/qq_40674583/articale/detail/10332196
随筆
dataSource

    
    
    
    
    
    
    
    

    
    

    
    

    
    

    

    
    
    

    
    
    

    
    

    
    
    

Sql Session FactoryBen
基本的なMyBatisの使い方では、SqlSessionFactoryBuilderによってSqlSessionFactoryを作成する。MyBatis-pringでは、SqlSessionFactoryBeanを使用して作成される。

  
    
  

属性
  • SqlSessionFactoryには、JDBC用のDataSourceという一意の必要性がある。これは任意のDataSourceオブジェクトであってもよく、その構成方法は他のSpringデータベース接続と同じである。
  • の一般的な属性は、MyBatisのXMLプロファイルパスを指定するconfigLocationである。一般的に、基礎構成は 要素を指しており、この構成ファイルは完全なMyBatis構成である必要はないことに注意が必要である。
  • 事務
    
    
    
        
    
    
    
    
        
            
            
        
    
    
    
    
        
    
    
    自動スキャンMapper
    
    
    mybatisのSql Sessionを使う必要があれば
    
      
    
    
    自動スキャンですか?香りがよくないですか?Sql Sessionでmapperを取りに行きます。
    Sql Session DaoSupportを使う
    public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
      public User getUser(String userId) {
        return getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
      }
    }
    
    
      
    
    
    コメントの設定を使う
    テスト
    Maven依存
        
            org.springframework
            spring-test
            5.0.2.RELEASE
        
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "classpath:applicationContext.xml")
    @ContextConfiguration(classes = SimpleConfiguration.class)
         ,  {}
    @ContextConfiguration(locations = { "classpath*:/spring1.xml", "classpath*:/spring2.xml" })
    
    設定パラメータの導入
    @PropertySource({"classpath:teacher.properties"}) //       ,                 
    @ConfigurationProperties(prifix=“teacher”) //         teacher              JavaBean 
    
    Resourceサブクラス
    クラスパスのリソースファイルを取得するために使用できます。
    FileSystem Resourceはファイルシステム内のリソースを取得するために使用できます。FileSystemResourceはまた、対応するリソースファイルに内容を書き込むことができます。もちろん前提は現在のリソースファイルが書くことができます。これはisWritable()方法で判断できます。FileSystem Resourceは、対応するリソースファイルの出力ストリームを外部に開放しており、getOutputStream()方式で取得することができる。
    UrlResourceは、URLに対応するリソースを表すために使用され、URLに簡単にパッケージ化されています。
    ByteArayResourceは、バイト配列のパッケージに対するリソースであり、その構築にはバイト配列が必要である。
    ServletContect ResourceはServlet Contectパッケージに対するリソースであり、Servlet Contect環境下のリソースにアクセスするために使用される。
    InputStreamResourceは、入力ストリームのパッケージ化に対するリソースであり、その構築には入力ストリームが必要である。
    SpringConfig.java配置類
    package chang.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.core.io.ClassPathResource;
    
    import javax.sql.DataSource;
    
    @Configuration
    @MapperScan("chang.mapper")
    @PropertySource(value= {"classpath:db.properties"}, ignoreResourceNotFound = true) //        jdbc   
    public class SpringConfig {
    
        @Value("${url}")
        private String url;
    
        @Value("${driver}")
        private String driver;
    
        @Value("${user}")
        private String user;
    
        @Value("${password}")
        private String password;
    
        @Bean(destroyMethod = "close",initMethod = "init")
        public DataSource dataSource() {
            DruidDataSource druidDataSource = new DruidDataSource();
            druidDataSource.setDriverClassName(driver);
            druidDataSource.setUrl(url);
            druidDataSource.setUsername(user);
            druidDataSource.setPassword(password);
            /*       、  、  */
            druidDataSource.setInitialSize(1);
            druidDataSource.setMinIdle(1);
            druidDataSource.setMaxActive(10);
            /*             */
            druidDataSource.setMaxWait(10000L);
            /*             ,           ,     */
            druidDataSource.setTimeBetweenEvictionRunsMillis(60000L);
            /*                ,     */
            druidDataSource.setMinEvictableIdleTimeMillis(300000L);
    
        /*
            
    
            
            
            
    
            
            
            
    
            
            
    
            
            
            
          */
            return druidDataSource;
        }
    
        @Bean
        public SqlSessionFactory sqlSessionFactory() throws Exception {
            SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
            factoryBean.setDataSource(dataSource());
            factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
            return factoryBean.getObject();
        }
    
    
    }
    
    テストクラス
    package chang.mapper;
    
    import chang.config.SpringConfig;
    import chang.pojo.User;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)
    public class UserMapperTest {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        public void javaConfig_findOneByXh(){
    
            User user = userMapper.findOneByXh("20177583");
            System.out.println(user);
    
        }
    
    }