fish-stack / JavaWeb

Java web开发相关的技能
0 stars 0 forks source link

MyBatis与Spring的整合 #5

Open bitfishxyz opened 5 years ago

bitfishxyz commented 5 years ago

MyBatis与Spring的整合

我们的Spring就是一个大容器,我们的实体类以及MyBatis的SQLSessionFactory都会被当做一个bean放在这个容器中。

项目示例代码放在了这里:

https://github.com/fish-spring/MyBatis-Spring-Impl

我们大致要编写下面的内容:

编写实体类和Dao层

这是我们的实体类

hello 2019-07-22 at 6 28 12 PM

这是我们的Dao层

hello 2019-07-22 at 6 33 26 PM

Mapper文件

然后我们要编写Mapper文件

hello 2019-07-22 at 6 28 59 PM

这里我就写个简单的来示意一下

配置Bean

hello 2019-07-22 at 6 29 40 PM
    <!-- 配置数据源-->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <!-- 这里直接使用内存数据,使得课程demo达到开箱即用的效果 -->
        <property name="url" value="jdbc:h2:mem:mybatis_spring"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
        <property name="initialSize" value="10"/>
    </bean>

    <!-- 初始化数据库 -->
    <jdbc:initialize-database>
        <jdbc:script location="classpath:initDB.sql"/>
    </jdbc:initialize-database>

    <!-- 配置MyBatis的SQLSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 给出数据源 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 指明mapper文件的位置 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- 自动生成dao层接口的实现类-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 使用当前sessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
        <!-- 扫描接口所在的包 -->
        <property name="basePackage" value="dao" />
    </bean>

配置bean的时候就是三个

编写测试类

hello 2019-07-22 at 6 30 35 PM

运行测试

自动注入monkeyDao

hello 2019-07-22 at 6 30 45 PM

然后调用接口就行了