Spring中整合mybatis
来源:互联网 发布:htc windows系统手机 编辑:程序博客网 时间:2024/06/08 16:48
1、在xml中定义MyBatis的配置文件,包括一些属性信息。
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings> (1)
<!-- Java属性与数据库字段采用驼峰式对应 -->
<settingname="mapUnderscoreToCamelCase"value="true"/>
</settings>
</configuration>
在(1)处提供可控制myBatis框架运行行为的属性信息。
2、在Spring配置文件整合mybatis
要在Spring中整合mybatis,第一项工作必须将mybatis-spring类包添加到项目的类库中。
2、1配置SqlSessionFactoryBean
<!--配置数据源 -->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="oracle.jdbc.driver.OracleDriver"
p:url="jdbc:oracle:thin:@localhost:1521:orcl"
p:username="system"
p:password="111111"/>
<!-- myBatis文件 -->
<beanid="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean"> (1)
<propertyname="dataSource"ref="dataSource"/> (2)
<propertyname="configLocation"value="classpath:mybatis-config.xml" />(3)
<propertyname="mapperLocations"
value="classpath*:com/forms/**/*.xml"/> (4)
</bean>
1、 mybatis-spring类包提供一个SqlSessionFactoryBean,以便通过Spring风格创建myBatis的SqlSessionFactory,如(1)所示。
2、 注入数据源如(2)所示。
3、 指定mybatis的总装配置文件(类路径下的mybatis-config.xml文件),如(3)所示。
4、 通过mapperLocations属性,设置扫描式加载SQL映射文件。如(4)所示。
注意:
(1) 如果没有设置这个属性,Dao接口的命名与映射文件的命名要完全相同,才能找到对应的映射项。(所以在spring中配置mybatis时,最好加上这个mapperLocations属性。)
(2) 如果要指定扫描多个不同风格的SQL映射文件。可以采用如下方式:
<propertyname="mapperLocations">
<array>
<value>classpath*:sql-mapper/beneform4j/*.xml</value>
<value>classpath*:com/forms/beneform4j/**/*.beneform4j.xml</value>
<value>classpath*:com/forms/fdfx/**/*.beneform4j.xml</value>
</array>
</property>
2、2配置MapperScannerConfigurer
mybatis-spring提供了一个转换器MapperScannerConfigurer,它可以将映射接口直接转换为Spring容器中的Bean,这样我们就可以在Service注入映射接口的Bean了。
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage"value="com.forms"/> (1)
<propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
</bean>
MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子包),如果它们在SQL映射文件中定义过,则将它们动态定义一个Spring Bean。在Service层就可以直接使用@Autowired注入
这些映射接口的bean。
3、编写DAO文件
packagecom.forms.common.dao;
importorg.apache.ibatis.annotations.Param;
importorg.springframework.stereotype.Repository;
import com.forms.common.domain.User;
@Repository
publicinterface UserDao {
publicint getMatchCount(
@Param("userName") String userName,
@Param("password") String password) ;
}
4、编写xml文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.forms.common.dao.UserDao"> (1)
<selectid="getMatchCount"resultType="Integer"> (2)
SELECT count(*) FROMt_user U
<where>
<iftest="null !=userName and '' != userName">
AND U.user_name like #{userName, jdbcType=VARCHAR}
</if>
<iftest="null !=password and '' != password">
AND U.password =#{password, jdbcType=VARCHAR}
</if>
</where>
</select>
</mapper>
在(1)处指定了映射所在的命名空间。(注意:命名空间的字符串(例如:namespace="com.forms.common.dao.UserDao")中不能出现空格,要不然程序会报找不到对应的映射项错误),每个具体的映射项都有一个id,可以通过命名空间和映射项的id定位到具体的映射项。
映射项的parameterType指定传入的参数对象,可以是全限定名的类,也可以是类的别名,类别名在mybatis的主配置文件中定义。(其实实际项目中,不是必须配置别名)。如果映射项的入参是基础类型或String类型,则可以使用如int、long、String的基础类型名。映射项中通过#{xxx}绑定parameterType指定参数类的属性,支持级联属性,如#{topic.forumId}。
- Spring中整合mybatis
- Mybatis -- Mybatis整合Spring
- 【Mybatis】Mybatis整合spring
- springMVC+mybatis+spring整合中varchar错误
- SSM整合中spring-mybatis.xml详解
- Idea中Maven整合Spring+mybatis+tomcat
- 【Spring+Mybatis】Spring整合Mybatis
- MyBatis-----2、MyBatis整合Spring
- Spring整合Mybatis
- spring整合myBatis
- MyBatis-Spring框架整合
- MyBatis+Spring整合示例
- MyBatis+Spring整合示例
- MyBatis+Spring整合方案
- spring + struts2 + mybatis整合
- Spring整合Mybatis
- Mybatis整合Spring
- Spring Mybatis 整合
- redis分布式锁
- (OK) MIMP
- [Loj]#6004. 「网络流 24 题」圆桌聚餐
- java入门学习01
- 谷歌电子市场开发记录(2)-框架搭建
- Spring中整合mybatis
- nodejs http simple demo
- 使用反射遍历类的属性
- SQL 实现行转列
- 括号匹配
- mysql实现sql记录
- UIVIEW切任意角
- python3使用builtwith 出错的最简单处理方法
- CentOS7下安装MySQL5.7安装与配置(YUM)