以下个人学习笔记,仅供参考,欢迎指正。

MyBatis 是支持定制化 SQL、存储过程以及高级映射的持久层框架,其主要就完成2件事情:

  • 封装JDBC操作

  • 利用反射打通Java类与SQL语句之间的相互转换

MyBatis的主要设计目的就是让我们对执行SQL语句时对输入输出的数据管理更加方便,所以方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。

MyBatis的配置

 spring整合mybatis(druid数据源)

  1 (1)整合思路:把MyBatis框架中使用所涉及的核心组件配置到Spring容器中
  2 (2)步骤:
  3 -->1.添加pom依赖,mybatis-spring,spring-tx,spring-jdbc
  4 -->2.创建实体类(entity)
  5 -->3.创建数据访问接口(dao层的接口)
  6 -->4.配置SQL映射文件(resource下的mapper.xml文件)
  7 -->5.配置mybatis的配置文件(resource下的spring下的mybatis-config.xml)
  8 -->6.凡是使用了注解,都需要配置扫描注解定义的业务Bean: <context:component-scan base-package="com.one.ssm.dao"/>
  9 和<context:annotation-config/>(用于激活那些已经在spring容器里注册过的bean)
 10 
 11 
 12 <?xml version="1.0" encoding="UTF-8" ?>
 13 <!DOCTYPE configuration
 14         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 15         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 16 <configuration>
 17 <!--配置全局属性-->
 18 <settings>
 19     <!--使用jdbc的getGeneratedKeys获取数据库自增主键值-->
 20     <setting name="useGeneratedKeys" value="true"/>
 21     <!--使用列别名替换列名,默认true, eg:select name as title from table-->
 22     <setting name="useColumnLabel" value="true"/>
 23     <!--开启驼峰命名转换 table(create_time)-->entity(createTime)
 24     <setting name="mapUnderscoreToCamelCase" value="true"/>
 25 </settings>
 26 </configuration>
 27 
 28 (3)实现整合(spring-dao.xml操作)
 29 -->1.配置dataSource数据源
 30 jdbc.properties内容:
 31     jdbc.driver=com.mysql.jdbc.Driver
 32     jdbc.url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=UTF-8
 33     jdbc.username=root
 34     jdbc.password=123456
 35 
 36 <!--properties文件配置数据源-->
 37 <context:property-placeholder location="classpath:spring/jdbc.properties"/>
 38     <bean >
 39         <!--配置连接池属性-->
 40         <property name="driverClassName" value="${jdbc.driver}"/>
 41         <property name="url" value="${jdbc.url}"/>
 42         <property name="username" value="${jdbc.username}"/>
 43         <property name="password" value="${jdbc.password}"/>
 44     </bean>
 45 
 46 -->2.配置SqlSessionFactoryBean
 47    <!--SqlSession 包含了所有执行数据库SQL语句的方法。能够直接地通过SqlSession实例执行映射SQL-->
 48     <!--缺少sqlSessionFactory:No bean named 'sqlSessionFactory' available    完成对配置文件的读取-->
 49     <bean >
 50         <!--注入数据库连接池--><!--否则会出现java.lang.IllegalArgumentException: Property 'dataSource' is required-->
 51         <property name="dataSource" ref="dataSource"/>
 52 
 53         <!--扫描entity包,使用别名,设置这个以后再Mapper配置文件中在parameterType
 54         的值就不用写成全路径名了-->
 55         <property name="typeAliasesPackage" value="com.one.ssm.entity"/>
 56 
 57         <!--扫描mapper需要的xml文件-->
 58         <property name="mapperLocations" value="classpath:mapper/*.xml"/>
 59     </bean>
 60 
 61     <!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
 62     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 63         <!-- 注入sqlSessionFactory -->
 64         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
 65         <!-- 给出需要扫描Dao接口包 -->
 66         <property name="basePackage" value="com.one.ssm.dao"/>
 67     </bean>
 68 
 69 (4)注入映射器的两种方式:使用了映射器注入就可以不用写dao层的接口的实现方法
 70 -->1.配置MapperFactoryBean生成映射器并注入到业务组件
 71  <bean >
 72         <!--mapperInterface属性指定映射器,只能是某一个接口类型-->
 73         <property name="mapperInterface" value="com.one.ssm.dao.UserDao"/>
 74         <!-- 注入sqlSessionFactory -->
 75         <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
 76     </bean>
 77 
 78 -->2.配置MapperScannerConfiger生成映射器并注入到业务组件:优先使用MapperScannerConfiger,可以批量生成映射器的实现
 79 <!--mybatis-spring提供了MapperScannerConfigurer,
 80     可以扫描指定包中的接口并将它们直接注册为MapperFactoryBean,为了简化MapperFactoryBean映射器太多而导致多出的配置项-->
 81  <!--mybatis-spring提供了MapperScannerConfigurer,可以扫描指定包中的接口并将它们直接注册为MapperFactoryBean-->
 82     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 83         <!-- 注入sqlSessionFactory -->
 84         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
 85         <!-- 给出需要扫描Dao接口包 -->
 86         <property name="basePackage" value="com.one.ssm.dao"/>
 87     </bean>
 88 
 89 (5)添加声明式事务(spring-service.xml操作)
 90 -->使用xml配置方法配置声明式事务
 91  <bean >
 92     <property name="url" value="${jdbc.url}" />
 93     <property name="username" value="${jdbc.username}" />
 94     <property name="password" value="${jdbc.password}" />
 95     <property name="driverClassName" value="${jdbc.driver}" />
 96     </bean>
 97     <!--配置事务(事务就是对一系列的数据库操作进行统一的提交或回滚操作)管理器-->
 98 <bean 
 99           class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
100         <property name="dataSource" ref="dataSource"/>
101     </bean>
102 -->使用注解添加声明式事务
103  <!--声明式事务注解的添加方式-->
104     <tx:annotation-driven transaction-manager="transactionManager"/>
spring整合mybatis

相关文章:

  • 2021-07-23
  • 2021-10-19
  • 2021-04-29
  • 2022-03-02
  • 2021-10-18
  • 2021-09-10
  • 2021-11-26
  • 2021-10-20
猜你喜欢
  • 2021-07-29
  • 2021-10-19
  • 2021-07-19
  • 2021-10-26
  • 2021-11-17
  • 2021-12-19
相关资源
相似解决方案