整合mybatis

在IDEA配置基本的mybatis

1.pom.xml中导包

1.mysql
2.mybatis
3.junit
4.build 静态资源过滤开启

(maven会把config.xml中的mapper.xml的映射mapper路径 资源过滤了 target下面都没有mapper.xml这个文件)
pom.xml中设置能够被导出并把filtering过滤开启 回想尚学堂讲的filter去帮助sqlsession完成事物处理 而让Service层专注自己的sql操作
在这里插入图片描述
在< /dependecies>后面添加

  • 上面的resource是管理resources下的peoperties或者xml文件,我们的config.xml放在Resource
  • 上面的resource是管理java下的peoperties或者xml文件,我们的mapper.xml就放在java
<build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
     <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
        </resource>   
    </resources>
  </build>

2.配置文件 config.xml : 连接数据库+别名+映射mapper
在config.xml下连接数据库时不同版本mysql驱动包 配置不同
1不同版本的驱动网址不同
2?后面写的不同版本6以上还有地址
com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,
?后拼接useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?
 useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>

com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上的
?后拼接characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=Hongkong
在这里插入图片描述

  <environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/ssm?
 characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=Hongkong"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
    </environment>
</environments>

3.mapper.xml 绑定命名空间同名mapper接口+sql语句
4.pojo
5.junit测试执行sqlsession.getMapper(mapper.class)返回的对象去调用方法

配置整合spring的mybatis

在pom.xml中导包
1.junit
2.mysql-connector-java  
3.mybatis
4.spring-jdbc

5.spring-webmvc
6.spring-framework
7.aspectware
8.mybatis-spring
  • 全局配置文件config.xml:写别名 + settings

  • mapper包:
    1.mapper接口
    2.mapper.xml写< mapper>标签 下的sql标签

  • pojo类

  • 新增matis-spring的xml

  • 要和 Spring 一起使用 MyBatis,需要在 Spring 应用上下文中定义至少两样东西:一个 SqlSessionFactory 和至少一个数据映射器类(spring的数据源)。

  • 将config.xml中的environment全部删除并发现property name="driverClassName" value="com.mysql.cj.jdbc.Driver"的name从从前的driver改为driverClassName以数据源的形式 bean对象存入容器

  • 原来service层的sqlsessionFactory那些对象直接在容器中获取

<!--spring的数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=Hongkong"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>

以前需要读配置文件(环境/事物管理器/映射…)生成factory,现在factoryBean对象直接自己配置核心功能,直接能进行sql映射操作

在基础的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的。 而在 MyBatis-Spring 中,则使用 org.mybatis.spring.SqlSessionFactoryBean 来创建。
SqlSessionFactory 有两个属性,其中有一个唯一的必要属性:用于 JDBC 的 DataSource。这可以是任意的 DataSource 对象,它的配置方法和其它 Spring 数据库连接是一样的

    <!--sqlsessionfactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
    </bean>

蓝色全部删除
在这里插入图片描述
另外一个常用的属性是 configLocation, configLocation用来指定 MyBatis 的 XML 配置文件(config.xml)路径。config.xml在需要修改 MyBatis 的基础配置非常有用。通常,基础配置指的是 < settings> 或 < typeAliases> 元素。

  • 在spring-mybatis.xml的 < bean id="sqlsessionFactory">标签下可以通过<property name="configLocation" value="classpath:config.xml"/>绑定配置文件config.xml
  • 还可以通过<property name="mapperLocations">把config,xml中配置的mapper映射/别名都配置了
    就是可以取代config.xml 但我们一般会留别名和< settings >在config.xml中
  • 下图为property 中可以配置的东西
    在这里插入图片描述
    mapperLocations 属性接受多个资源位置。这个属性可以用来指定 MyBatis 的映射器 XML (mapper.xml)配置文件的位置。属性的值是一个 Ant 风格的字符串,可以指定加载一个目录中的所有文件,或者从一个目录开始递归搜索所有目录
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:config.xml"/>
        <property name="mapperLocations" value="classpath:com/kuang/mapper/*.xml"/>
    </bean>

现在完成了config.xml mapper.xml的配置,有了sqlsessionFactory我们要获得sqlsession进行事物操作了。

在容器当中配置sqlsessionSqlSessionTemplate类这个bean,sqlsession是由sqlseesionFactory获得的,所以要将sqlseesionFactory依赖注入到sqlsession的对象中,
sqlsession的原码中显示它没有Set方法,但是由构造方法,并且构造方法的参数正是sqlseesionFactory,于是采用构造方法的依赖注入

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
      <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
    </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值