框架整合

来源:互联网 发布:淘宝u站首页在哪里 编辑:程序博客网 时间:2024/06/01 09:19

框架整合主要靠spring强大的DI和AOP(目前接触到的整合是酱紫的。。。),把所有套路化的东西都省略

spring整合mybatis

在spring配置文件中加入:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >        <!-- 注入数据库连接池 -->        <property name="dataSource" ref="dataSource"></property>        <!-- 配置mybatis全局配置文件 -->        <property name="configLocation" value="classpath:mybatis-config.xml"></property>        <!-- 扫描entity包,com.diyun.entity.Seckill => Seckill  -->        <property name="typeAliasesPackage" value="com.diyun.entity"></property>        <!-- 扫描sql配置文件 -->        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>    </bean>    <!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>        <property name="basePackage" value="com.diyun.dao"></property>    </bean>

上面的配置做了什么?
1.配置数据库。这特么废话,肯定要有个数据源给mybatis
2.配置mybatis全局配置文件,一些诸如获取自增主键值,开启驼峰命名法之类的配置,总不能放spring配置文件中吧?
3.扫描entity包。
4.扫描sql配置文件。起码得告诉spring,它需要的文件到底在哪吧?
5.扫描Dao接口。这是关键,mybatis接口式编程中,我们通过设计接口来对应相应的sql语句。
比如接口中有这个方法:Seckill getById(long SeckillId);这实际上已经能准确描述所有问题了:①sql执行结果打包成Seckill实体;②对应sql配置的id为‘getById’;③参数类型为long,且名字叫SeckillId。所以还需要写其他的嘛?不需要。只要任务明确,那就存在直接生成的可能,spring做到了。

另外:在未整合之前,向sql中传递多个参数是用map来打包传递的,现在所有都交给spring来做了。这样:@Param("seckillId") long seckillId,@Param("userPhone") long userPhone,加一个@Param来告诉spring(因为编译之后是获取不到形参名的。spring用它牛叉的AOP,动态处理好sql执行前的一切套路代码,然后拿着两个不明所以的传参,在风中凌乱。。。。所以你要告诉它一声)

0 0
原创粉丝点击