SpringMVC系列之整合Mybatis

一、Maven依賴

  • spring-jdbc
  • spring-tx
  • mysql-connector-java
  • mybatis
  • mybatis-spring
  • druid 或 其他數據庫連接池
  • 如果需要分頁,可以再引入 pagehelper 分頁插件【非必須引入】

代碼:

	<!-- spring-jdbc : jdbcTemplate -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.0.7.RELEASE</version>
    </dependency>

    <!-- spring-tx : 事務 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.0.7.RELEASE</version>
    </dependency>

    <!-- mysql -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
    </dependency>

    <!-- mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

    <!-- mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>

    <!-- 數據庫連接池 c3p0、dbcp、druid、hikariCP-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
    </dependency>

    <!-- pageHelper -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.10</version>
    </dependency>

二、需要配置的Bean對象

需要將以下Bean對象,配置到Root容器中,也就是父容器,而不是SpringMVC子容器中。

  • 數據源
  • SqlSessionFactoryBean
  • MapperScannerConfigurer

代碼:

	<!-- 1. 數據源 -->
    <!-- 驅動名稱、鏈接地址、用戶名、密碼 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/et1909?serverTimezone=GMT" />
        <property name="username" value="root" />
        <property name="password" value="root" />
    </bean>

    <!-- 2. SqlSessionFactoryBean -->
    <!-- 屬性: Bean別名、數據源、mapper位置、插件 【config.xml】-->
    <!-- typeAliasesPackage\dataSource\mapperLocations\plugins -->
    <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:mappers/*.xml" />
        <property name="typeAliasesPackage" value="com.golden.bean" />
        <property name="plugins">
            <array>
                <!--5.0版本前是PageHelper-->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <!-- 調用setProperties()方法 -->
                    <property name="properties">
                        <props>
                        	<!--指定使用的是什麼數據庫-->
                            <prop key="helperDialect">mysql</prop>
                            <!--是否開啓頁數溢出保護-->
                            <prop key="resonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

    <!-- 3. MapperScannerConfigurer: 掃描mapper接口,創建代理類,並將代理類加載到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.golden.mapper" />
        <!--如果有多個FactoryBean的話,可以使用這種方式指定一下-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
  • 這裏我們使用的是Druid數據源;
  • 配置Druid數據源中的SqlSessionFactory;
  • 掃描指定包裏的接口,爲接口創建代理,並將代理類加載到 spring容器中,用於執行sql語句。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章